[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r10849: a few fixes for bug 463. needs a changelog. might need more (tor/trunk/src/or)



Author: arma
Date: 2007-07-16 22:53:17 -0400 (Mon, 16 Jul 2007)
New Revision: 10849

Modified:
   tor/trunk/src/or/dns.c
Log:
a few fixes for bug 463. needs a changelog. might need more fixes.


Modified: tor/trunk/src/or/dns.c
===================================================================
--- tor/trunk/src/or/dns.c	2007-07-16 19:47:03 UTC (rev 10848)
+++ tor/trunk/src/or/dns.c	2007-07-17 02:53:17 UTC (rev 10849)
@@ -536,8 +536,8 @@
   r = dns_resolve_impl(exitconn, is_resolve, oncirc, &hostname);
   switch (r) {
     case 1:
-      /* We got an answer without a lookup.  (Either the answer was
-       * cached, or it was obvious (like an IP address).)*/
+      /* We got an answer without a lookup -- either the answer was
+       * cached, or it was obvious (like an IP address). */
       if (is_resolve) {
         /* Send the answer back right now, and detach. */
         if (hostname)
@@ -562,7 +562,7 @@
     case -2:
     case -1:
       /* The request failed before it could start: cancel this connection,
-       * and stop everybody waiting forthe same connection. */
+       * and stop everybody waiting for the same connection. */
       if (is_resolve) {
         send_resolved_cell(exitconn,
              (r == -1) ? RESOLVED_TYPE_ERROR : RESOLVED_TYPE_ERROR_TRANSIENT);
@@ -578,7 +578,7 @@
         // If it's marked for close, it's on closeable_connection_lst in
         // main.c.  If it's on the closeable list, it will get freed from
         // main.c. -NM
-        // "<armadev> If that's true, there are other bugs arond, where we
+        // "<armadev> If that's true, there are other bugs around, where we
         //  don't check if it's marked, and will end up double-freeing."
       }
       break;
@@ -822,10 +822,13 @@
   strlcpy(search.address, address, sizeof(search.address));
 
   resolve = HT_FIND(cache_map, &cache_root, &search);
-  if (!resolve || resolve->state != CACHE_STATE_PENDING) {
-    log_notice(LD_BUG,"Address %s is not pending. Dropping.",
-               escaped_safe_str(address));
+  if (!resolve)
     return;
+
+  if(resolve->state != CACHE_STATE_PENDING) {
+    log_notice(LD_BUG,"Address %s is not pending (state %d). Dropping.",
+               escaped_safe_str(address), resolve->state);
+    return;
   }
 
   if (!resolve->pending_connections) {