]> Sergey Matveev's repositories - dht-bootstrap.git/blobdiff - dht-bootstrap.c
Slightly less warnings
[dht-bootstrap.git] / dht-bootstrap.c
index e98cd6ea6bd5f2e4c9be46d714e6bf54bf56d851..eef8b06884657f982a2aa518912bc524d11cef70 100644 (file)
@@ -131,13 +131,13 @@ struct circular_list {
     struct node nodes[CIRCULAR_LIST_SIZE];
 };
 
-struct circular_list v4_new, v6_new, v4_confirmed, v6_confirmed;
+static struct circular_list v4_new, v6_new, v4_confirmed, v6_confirmed;
 
 #define MAX_TOKEN_BUCKET_TOKENS 40
 static time_t token_bucket_time;
 static int token_bucket_tokens;
 
-FILE *dht_debug = NULL;
+static FILE *dht_debug = NULL;
 
 #ifdef __GNUC__
 __attribute__((format(printf, 1, 2)))
@@ -354,9 +354,7 @@ send_request(struct circular_list *list, int dopop, int doping, int want)
         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);
@@ -433,35 +431,15 @@ main(int argc, char **argv)
     if (argc < i + 1)
         goto usage;
 
-    const char *port = strdup(argv[i++]);
-
+    const char *ourPort = strdup(argv[i++]);
     if (ipv4addr != NULL) {
-        dht_socket = newSock(ipv4addr, port);
+        dht_socket = newSock(ipv4addr, ourPort);
     }
     if (ipv6addr != NULL) {
-        dht_socket6 = newSock(ipv6addr, port);
+        dht_socket6 = newSock(ipv6addr, ourPort);
     }
 
-    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;
@@ -469,6 +447,7 @@ main(int argc, char **argv)
     if (!quiet)
         dht_debug = stdout;
 
+    int rc = 0;
     unsigned char ttid[4];
 
     while (i < argc) {
@@ -528,15 +507,13 @@ main(int argc, char **argv)
                 list_elements(&v4_new),
                 list_elements(&v6_new));
 
-        int rc = poll(fds, 2, tv_sec * 1000 + tv_msec);
-
+        rc = poll(fds, 2, tv_sec * 1000 + tv_msec);
         if (rc < 0) {
             perror("poll");
             sleep(1);
         }
 
         if (rc > 0) {
-            int rc = 0;
             int message;
             unsigned char tid[16], id[20], info_hash[20], target[20];
             unsigned char buf[1536], nodes[256], nodes6[1024], token[128];
@@ -562,7 +539,7 @@ main(int argc, char **argv)
                     rc = -1;
                 } else {
                     rc = recvfrom(dht_socket6, buf, 1536, 0, source, &sourcelen);
-                };
+                }
             }
 
             if (rc < 0 || sourcelen > sizeof(struct sockaddr_storage))
@@ -717,8 +694,6 @@ main(int argc, char **argv)
         }
     }
 
-    return 0;
-
 usage:
     fprintf(stderr, "dht-bootstrap [-q] [-4 ADDR4] [-6 ADDR6] port [node port...]\n");
     exit(1);