commit 057b5ab72f72be49038ae43aed7727cdb212bbb7 from: Omar Polo date: Fri Jan 28 21:49:14 2022 UTC use serial ids and drop usage of arc4random it's not so useful here and not (directly) used anywhere else. commit - 4c0ae0c3cf2253e2e929fcb85c907f3a17116e1f commit + 057b5ab72f72be49038ae43aed7727cdb212bbb7 blob - 8aac4d962d6767f5211339c98ffd37e018d1ce81 blob + 5a11f3f989fb1713410426a02fdd65e2097103e6 --- configure.ac +++ configure.ac @@ -53,11 +53,6 @@ if test x"$with_libbsd" != x"no"; then ]) fi -# Checks for library functions. -AC_SEARCH_LIBS([arc4random], [], - [AC_DEFINE([HAVE_ARC4RANDOM], 1, [arc4random])], - [AC_DEFINE([HAVE_ARC4RANDOM], 0, [arc4random])]) - AC_REPLACE_FUNCS([ asprintf \ err \ blob - 4022322122fd289cec715309ee170891d58a5d37 blob + 59ebc0fe956c7b3a89e53b9ba825ceed19fa703b --- kamid/listener.c +++ kamid/listener.c @@ -595,34 +595,12 @@ yield_w(struct client *c, void (*fn)(int, short, void event_del(&c->event); event_set(&c->event, c->fd, EV_WRITE, fn, c); event_add(&c->event, NULL); -} - -static inline uint32_t -random_id(void) -{ -#if HAVE_ARC4RANDOM -# define RANDID() arc4random() -#else - /* not as pretty as a random id */ - static uint32_t counter = 0; -# define RANDID() counter++ -#endif - - struct client find, *res; - - for (;;) { - find.id = RANDID(); - res = SPLAY_FIND(clients_tree_id, &clients, &find); - if (res == NULL) - return find.id; - } - -#undef RANDID } static void handle_accept(int fd, short ev, void *data) { + static uint32_t counter; struct kd_listen_conf *listen = data; struct client *c; int s; @@ -646,7 +624,7 @@ handle_accept(int fd, short ev, void *data) } c->fd = s; - c->id = random_id(); + c->id = counter++; SPLAY_INSERT(clients_tree_id, &clients, c);