Browse Source

Respond to AAAA requests on DNSPort with AAAA automaps

Other DNS+IPv6 problems remain, but at least this fixes the
automapping.

Fixes bug 10468; bugfix on 0.2.4.7-alpha.
Nick Mathewson 10 years ago
parent
commit
46a3914079
2 changed files with 14 additions and 0 deletions
  1. 4 0
      changes/bug10468
  2. 10 0
      src/or/dnsserv.c

+ 4 - 0
changes/bug10468

@@ -0,0 +1,4 @@
+  o Minor bugfixes:
+    - When using DNSPort and AutomapHostsOnResolve, respond to AAAA
+      requests with AAAA automapped answers. Fixes bug 10468; bugfix
+      on 0.2.4.7-alpha.

+ 10 - 0
src/or/dnsserv.c

@@ -131,6 +131,16 @@ evdns_server_callback(struct evdns_server_request *req, void *data_)
   else
   else
     entry_conn->socks_request->command = SOCKS_COMMAND_RESOLVE_PTR;
     entry_conn->socks_request->command = SOCKS_COMMAND_RESOLVE_PTR;
 
 
+  if (q->type == EVDNS_TYPE_A) {
+    entry_conn->ipv4_traffic_ok = 1;
+    entry_conn->ipv6_traffic_ok = 0;
+    entry_conn->prefer_ipv6_traffic = 0;
+  } else if (q->type == EVDNS_TYPE_AAAA) {
+    entry_conn->ipv4_traffic_ok = 0;
+    entry_conn->ipv6_traffic_ok = 1;
+    entry_conn->prefer_ipv6_traffic = 1;
+  }
+
   strlcpy(entry_conn->socks_request->address, q->name,
   strlcpy(entry_conn->socks_request->address, q->name,
           sizeof(entry_conn->socks_request->address));
           sizeof(entry_conn->socks_request->address));