]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Log cached-at-exit exit policies to try to fix bug 672. tor-0.2.1.13-alpha
authorNick Mathewson <nickm@torproject.org>
Mon, 9 Mar 2009 15:53:37 +0000 (15:53 +0000)
committerNick Mathewson <nickm@torproject.org>
Mon, 9 Mar 2009 15:53:37 +0000 (15:53 +0000)
svn:r18827

src/or/policies.c

index 8ef8cdb690274952c20517e6d6ce619f6ee74b11..a2ab13a90a6ede26c8bc674fee454ec91f964017 100644 (file)
@@ -1316,8 +1316,23 @@ policies_free_all(void)
   addr_policy_list_free(authdir_badexit_policy);
   authdir_badexit_policy = NULL;
 
-  if (!HT_EMPTY(&policy_root))
-    log_warn(LD_MM, "Still had some address policies cached at shutdown.");
+  if (!HT_EMPTY(&policy_root)) {
+    policy_map_ent_t **ent;
+    int n = 0;
+    char buf[POLICY_BUF_LEN];
+
+    log_warn(LD_MM, "Still had %d address policies cached at shutdown.",
+             (int)HT_SIZE(&policy_root));
+
+    /* Note the first 10 cached policies to try to figure out where they
+     * might be coming from. */
+    HT_FOREACH(ent, policy_map, &policy_root) {
+      if (++n > 10)
+        break;
+      if (policy_write_item(buf, sizeof(buf), (*ent)->policy, 0) >= 0)
+        log_warn(LD_MM,"  %d [%d]: %s", n, (*ent)->policy->refcnt, buf);
+    }
+  }
   HT_CLEAR(policy_map, &policy_root);
 }