]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
r6981@Kushana: nickm | 2006-07-31 13:23:26 -0400
authorNick Mathewson <nickm@torproject.org>
Mon, 31 Jul 2006 18:01:45 +0000 (18:01 +0000)
committerNick Mathewson <nickm@torproject.org>
Mon, 31 Jul 2006 18:01:45 +0000 (18:01 +0000)
 More asserts for cache correctness.

svn:r6960

src/or/dns.c

index dacbaf6c3a6e81c5471c46e1b0ae9f5c86bb01e7..8940e5456520a26ab419c96187cc2fa3feb749bc 100644 (file)
@@ -226,6 +226,8 @@ static void
 set_expiry(cached_resolve_t *resolve, time_t expires)
 {
   tor_assert(resolve && resolve->expire == 0);
+  if (!cached_resolve_pqueue)
+    cached_resolve_pqueue = smartlist_create();
   resolve->expire = expires;
   smartlist_pqueue_add(cached_resolve_pqueue,
                        _compare_cached_resolves_by_expiry,
@@ -1241,9 +1243,15 @@ assert_resolve_ok(cached_resolve_t *resolve)
   tor_assert(resolve);
   tor_assert(resolve->magic == CACHED_RESOLVE_MAGIC);
   tor_assert(strlen(resolve->address) < MAX_ADDRESSLEN);
+  tor_assert(tor_strisnonupper(resolve->address));
   if (resolve->state != CACHE_STATE_PENDING) {
     tor_assert(!resolve->pending_connections);
   }
+  if (resolve->state == CACHE_STATE_PENDING ||
+      resolve->state == CACHE_STATE_DONE) {
+    tor_assert(!resolve->ttl);
+    tor_assert(!resolve->addr);
+  }
 }
 
 static void
@@ -1260,5 +1268,10 @@ assert_cache_ok(void)
     assert_resolve_ok(*resolve);
     tor_assert((*resolve)->state != CACHE_STATE_DONE);
   }
+  if (!cached_resolve_pqueue)
+    return;
+
+  smartlist_pqueue_assert_ok(cached_resolve_pqueue,
+                             _compare_cached_resolves_by_expiry);
 }