diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/or/dns.c | 11 |
2 files changed, 14 insertions, 2 deletions
@@ -55,6 +55,11 @@ Changes in version 0.2.0.8-alpha - 2007-??-?? - On some platforms, accept() can return a broken address. Detect this more quietly, and deal accordingly. (Fixes bug 483.) + o Minor bugfixes (DNS): + - It's not actually an error to find a non-pending entry in the DNS + cache when canceling a pending resolve. Don't log unless stuff + is fishy. Resolves bug 463. + o Code simplifications and refactoring: - Make a bunch of functions static. Remove some dead code. - Pull out about a third of the really big routerlist.c; put it in a diff --git a/src/or/dns.c b/src/or/dns.c index 64cfcb024e..7c52d56f85 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -836,8 +836,15 @@ dns_cancel_pending_resolve(const char *address) 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); + /* We can get into this state if we never actually created the pending + * resolve, due to finding an earlier cached error or something. Just + * ignore it. */ + if (resolve->pending_connections) { + log_warn(LD_BUG, + "Address %s is not pending but has pending connections!", + escaped_safe_str(address)); + tor_fragile_assert(); + } return; } |