[or-cvs] r14414: Backport: Apply patch from mwenge to fix bug 646: makes stre (in tor/branches/tor-0_2_0-patches: . src/or)

nickm at seul.org nickm at seul.org
Tue Apr 22 17:21:27 UTC 2008


Author: nickm
Date: 2008-04-22 13:21:26 -0400 (Tue, 22 Apr 2008)
New Revision: 14414

Modified:
   tor/branches/tor-0_2_0-patches/
   tor/branches/tor-0_2_0-patches/ChangeLog
   tor/branches/tor-0_2_0-patches/src/or/connection_edge.c
Log:
 r15279 at tombo:  nickm | 2008-04-22 13:21:01 -0400
 Backport: Apply patch from mwenge to fix bug 646: makes stream events for dns requests get generated more consistently.



Property changes on: tor/branches/tor-0_2_0-patches
___________________________________________________________________
 svk:merge ticket from /tor/020 [r15279] on 49666b30-7950-49c5-bedf-9dc8f3168102

Modified: tor/branches/tor-0_2_0-patches/ChangeLog
===================================================================
--- tor/branches/tor-0_2_0-patches/ChangeLog	2008-04-22 17:21:12 UTC (rev 14413)
+++ tor/branches/tor-0_2_0-patches/ChangeLog	2008-04-22 17:21:26 UTC (rev 14414)
@@ -30,6 +30,10 @@
       untrusted sources.  Fixes bug 663.
     - Non-exit relays no longer allow DNS requests.  Fixes bug 619.
       Patch from Lodger.
+    - Make controller stream events for DNS requests more consistent,
+      by adding "new stream" events for DNS requests, and removing
+      spurious "stream closed" events" for cached reverse resolves.
+      Patch from mwenge.  Fixes bug 646.
 
   o Minor features (security):
     - Reject requests for reverse-dns lookup of names in a private

Modified: tor/branches/tor-0_2_0-patches/src/or/connection_edge.c
===================================================================
--- tor/branches/tor-0_2_0-patches/src/or/connection_edge.c	2008-04-22 17:21:12 UTC (rev 14413)
+++ tor/branches/tor-0_2_0-patches/src/or/connection_edge.c	2008-04-22 17:21:26 UTC (rev 14414)
@@ -1342,13 +1342,15 @@
                                    &map_expires)) {
       char *result = tor_strdup(socks->address);
       /* remember _what_ is supposed to have been resolved. */
-      strlcpy(socks->address, orig_address, sizeof(socks->address));
+      tor_snprintf(socks->address, sizeof(socks->address), "REVERSE[%s]",
+                  orig_address);
       connection_ap_handshake_socks_resolved(conn, RESOLVED_TYPE_HOSTNAME,
                                              strlen(result), result, -1,
                                              map_expires);
       connection_mark_unattached_ap(conn,
-                                 END_STREAM_REASON_DONE |
-                                 END_STREAM_REASON_FLAG_ALREADY_SOCKS_REPLIED);
+                                END_STREAM_REASON_DONE |
+                                END_STREAM_REASON_FLAG_ALREADY_SOCKS_REPLIED |
+                                END_STREAM_REASON_FLAG_ALREADY_SENT_CLOSED);
       return 0;
     }
     if (options->ClientDNSRejectInternalAddresses) {
@@ -2079,9 +2081,11 @@
                            string_addr, payload_len) < 0)
     return -1; /* circuit is closed, don't continue */
 
+  ap_conn->_base.address = tor_strdup("(Tor_internal)");
   ap_conn->_base.state = AP_CONN_STATE_RESOLVE_WAIT;
   log_info(LD_APP,"Address sent for resolve, ap socket %d, n_circ_id %d",
            ap_conn->_base.s, circ->_base.n_circ_id);
+  control_event_stream_status(ap_conn, STREAM_EVENT_NEW, 0);
   control_event_stream_status(ap_conn, STREAM_EVENT_SENT_RESOLVE, 0);
   return 0;
 }



More information about the tor-commits mailing list