[or-cvs] When tor_lookup_hostname says 0.0.0.0, treat it as an error.

Nick Mathewson nickm at seul.org
Sun Jul 4 04:52:45 UTC 2004


Update of /home/or/cvsroot/src/or
In directory moria.mit.edu:/tmp/cvs-serv27742/src/or

Modified Files:
	dns.c routerlist.c 
Log Message:
When tor_lookup_hostname says 0.0.0.0, treat it as an error.

Index: dns.c
===================================================================
RCS file: /home/or/cvsroot/src/or/dns.c,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -d -r1.100 -r1.101
--- dns.c	17 Jun 2004 18:13:09 -0000	1.100
+++ dns.c	4 Jul 2004 04:52:43 -0000	1.101
@@ -634,6 +634,7 @@
   uint32_t ip;
   int *fdarray = data;
   int fd;
+  int result;
 
   tor_close_socket(fdarray[0]); /* this is the side of the socketpair the parent uses */
   fd = fdarray[1]; /* this side is ours */
@@ -655,7 +656,11 @@
     }
     address[address_len] = 0; /* null terminate it */
 
-    switch (tor_lookup_hostname(address, &ip)) {
+    result = tor_lookup_hostname(address, &ip);
+    /* Make 0.0.0.0 an error, so that we can use "0" to mean "no addr") */
+    if (!ip)
+      result = -1;
+    switch (result) {
       case 1:
         log_fn(LOG_INFO,"Could not resolve dest addr %s (transient).",address);
         answer[0] = DNS_RESOLVE_FAILED_TRANSIENT;

Index: routerlist.c
===================================================================
RCS file: /home/or/cvsroot/src/or/routerlist.c,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -d -r1.92 -r1.93
--- routerlist.c	2 Jul 2004 23:40:03 -0000	1.92
+++ routerlist.c	4 Jul 2004 04:52:43 -0000	1.93
@@ -237,7 +237,7 @@
  */
 routerinfo_t *router_get_by_nickname(const char *nickname)
 {
-  int i, maybedigest, mustbedigest;
+  int i, maybedigest;
   routerinfo_t *router;
   char digest[DIGEST_LEN];
 
@@ -562,7 +562,8 @@
 static int
 router_resolve(routerinfo_t *router)
 {
-  if (tor_lookup_hostname(router->address, &router->addr) != 0) {
+  if (tor_lookup_hostname(router->address, &router->addr) != 0
+      || !router->addr) {
     log_fn(LOG_WARN,"Could not get address for router %s (%s).",
            router->address, router->nickname);
     return -1;



More information about the tor-commits mailing list