Browse Source

make servers tolerate the dns bug.

svn:r223
Roger Dingledine 22 years ago
parent
commit
afa95ca47c
1 changed files with 9 additions and 1 deletions
  1. 9 1
      src/or/dns.c

+ 9 - 1
src/or/dns.c

@@ -540,7 +540,15 @@ static int dns_found_answer(char *question, uint32_t answer, uint32_t valid) {
     return 0;
   }
 
-  assert(resolve->state == CACHE_STATE_PENDING);
+//  assert(resolve->state == CACHE_STATE_PENDING);
+  /* XXX this is a bug which hasn't been found yet. Probably something
+   * about slaves answering questions when they're not supposed to, and
+   * reusing the old question.
+   */
+  if(resolve->state != CACHE_STATE_PENDING) {
+    log(LOG_ERR,"dns_found_answer(): BUG: resolve '%s' in state %d (not pending). Dropping.",question, resolve->state);
+    return 0;
+  }
 
   resolve->answer = ntohl(answer);
   if(valid)