瀏覽代碼

r19138@catbus: nickm | 2008-03-30 11:59:26 -0400
oops; fix bug in descriptor metric logic.


svn:r14245

Nick Mathewson 17 年之前
父節點
當前提交
72ca7e5d88
共有 1 個文件被更改,包括 13 次插入5 次删除
  1. 13 5
      src/or/routerlist.c

+ 13 - 5
src/or/routerlist.c

@@ -2265,17 +2265,25 @@ dump_routerlist_mem_usage(int severity)
         char last_valid_until[ISO_TIME_LEN+1];
         char last_served_at[ISO_TIME_LEN+1];
         char id[HEX_DIGEST_LEN+1];
+        routerstatus_t *rs;
         format_iso_time(published, sd->published_on);
         format_iso_time(last_valid_until, sd->last_listed_as_valid_until);
         format_iso_time(last_served_at, sd->last_served_at);
         base16_encode(id, sizeof(id), sd->identity_digest, DIGEST_LEN);
         SMARTLIST_FOREACH(networkstatus_v2_list, networkstatus_v2_t *, ns,
-          if (networkstatus_v2_find_entry(ns, sd->identity_digest)) {
-            in_v2 = 1; break;
+          {
+            rs = networkstatus_v2_find_entry(ns, sd->identity_digest);
+            if (rs && !memcmp(rs->descriptor_digest,
+                              sd->signed_descriptor_digest, DIGEST_LEN)) {
+              in_v2 = 1; break;
+            }
           });
-        if (consensus && networkstatus_vote_find_entry(consensus,
-                                                       sd->identity_digest))
-          in_v3 = 1;
+        if (consensus) {
+          rs = networkstatus_vote_find_entry(consensus, sd->identity_digest);
+          if (rs && !memcmp(rs->descriptor_digest,
+                            sd->signed_descriptor_digest, DIGEST_LEN))
+            in_v3 = 1;
+        }
         log(severity, LD_DIR,
             "Old descriptor for %s (published %s) %sin v2 ns, %sin v3 "
             "consensus.  Last valid until %s; last served at %s.",