]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Make address_is_invalid_destination recognize ipv6 addrs as valid.
authorNick Mathewson <nickm@torproject.org>
Tue, 6 Nov 2012 18:35:31 +0000 (13:35 -0500)
committerNick Mathewson <nickm@torproject.org>
Thu, 15 Nov 2012 04:16:40 +0000 (23:16 -0500)
src/or/addressmap.c
src/or/dns.c

index 75cfca64424813d385f3311a4d0691201443a81c..98448ebddfbb525a36c3682bd38cbac2017a95dd 100644 (file)
@@ -902,6 +902,13 @@ address_is_invalid_destination(const char *address, int client)
       return 0;
   }
 
+  /* It might be an IPv6 address! */
+  {
+    tor_addr_t a;
+    if (tor_addr_parse(&a, address) >= 0)
+      return 0;
+  }
+
   while (*address) {
     if (TOR_ISALNUM(*address) ||
         *address == '-' ||
index 0758279471a8c11da2ff796bc5985a00b54deff7..780cae06bd57bb40cc0413213b622dceb93e66ac 100644 (file)
@@ -1334,7 +1334,7 @@ make_pending_resolve_cached(cached_resolve_t *resolve)
     cached_resolve_t *new_resolve = tor_memdup(resolve,
                                                sizeof(cached_resolve_t));
     uint32_t ttl = UINT32_MAX;
-    new_resolve->expiry = 0; /* So that set_expiry won't croak. */
+    new_resolve->expire = 0; /* So that set_expiry won't croak. */
     if (resolve->res_status_hostname == RES_STATUS_DONE_OK)
       new_resolve->result_ptr.hostname =
         tor_strdup(resolve->result_ptr.hostname);