return send_ping((struct sockaddr *)&ss, sslen, ttid, 4);
} else {
unsigned char id[20];
- int i;
- for (i = 0; i < 20; i++)
- id[i] = random() & 0xFF;
+ arc4random_buf(id, sizeof id);
make_tid(ttid, "fn", 0);
debugf("Sending find_node.\n");
return send_find_node((struct sockaddr *)&ss, sslen, ttid, 4, id, want);
dht_socket6 = newSock(ipv6addr, port);
}
- int rc = 0;
- {
- int fd = open("/dev/urandom", O_RDONLY);
- if (fd < 0) {
- perror("open(random)");
- exit(1);
- }
-
- rc = read(fd, myid, 20);
- if (rc < 20) {
- perror("open(random)");
- exit(1);
- }
-
- unsigned int seed;
- rc = read(fd, &seed, sizeof(seed));
- srandom(seed);
-
- close(fd);
- }
+ arc4random_buf(myid, sizeof myid);
memcpy(my_v, "1:v4:JB\0\0", 9);
have_v = 1;
if (!quiet)
dht_debug = stdout;
+ int rc = 0;
unsigned char ttid[4];
while (i < argc) {
token_bucket_tokens = MAX_TOKEN_BUCKET_TOKENS;
int send4 = 0;
struct pollfd fds[2];
- if (dht_socket >= 0) {
- fds[0].fd = dht_socket;
- fds[0].events = POLLIN;
- } else {
- fds[0].fd = -1;
- }
- if (dht_socket6 >= 0) {
- fds[1].fd = dht_socket6;
- fds[1].events = POLLIN;
- } else {
- fds[1].fd = -1;
- }
+ fds[0].fd = dht_socket;
+ fds[0].events = POLLIN;
+ fds[1].fd = dht_socket6;
+ fds[1].events = POLLIN;
while (1) {
int tv_sec = 0;