]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
r15731@catbus: nickm | 2007-10-12 17:27:48 -0400
authorNick Mathewson <nickm@torproject.org>
Fri, 12 Oct 2007 21:33:37 +0000 (21:33 +0000)
committerNick Mathewson <nickm@torproject.org>
Fri, 12 Oct 2007 21:33:37 +0000 (21:33 +0000)
 Move "sort a list of routerinfo_t" into its own function in routerlist.c

svn:r11903

src/or/dirserv.c
src/or/routerlist.c

index d2e0d5e42ffc33afc7c939c109ba260d5ff23dfe..addb3f4fc30404bc4fec90a69ac462a3153c97c2 100644 (file)
@@ -1695,17 +1695,6 @@ routerstatus_format_entry(char *buf, size_t buf_len,
   return 0;
 }
 
-/** Helper for sorting: compare two routerinfos by their identity
- * digest. */
-static int
-_compare_routerinfo_by_id_digest(const void **a, const void **b)
-{
-  routerinfo_t *first = *(routerinfo_t **)a, *second = *(routerinfo_t **)b;
-  return memcmp(first->cache_info.identity_digest,
-                second->cache_info.identity_digest,
-                DIGEST_LEN);
-}
-
 /** Helper for sorting: compares two routerinfos first by address, and then by
  * descending order of "usefulness".  (An authority is more useful than a
  * non-authority; a running router is more useful than a non-running router;
@@ -1754,7 +1743,9 @@ _compare_routerinfo_by_ip_and_bw(const void **a, const void **b)
 
   /* They're equal! Compare by identity digest, so there's a
    * deterministic order and we avoid flapping. */
-  return _compare_routerinfo_by_id_digest(a, b);
+  return memcmp(first->cache_info.identity_digest,
+                second->cache_info.identity_digest,
+                DIGEST_LEN);
 }
 
 /** Given a list of routerinfo_t in <b>routers</b>, return a new digestmap_t
@@ -1913,7 +1904,7 @@ generate_networkstatus_vote_obj(crypto_pk_env_t *private_key,
 
   routers = smartlist_create();
   smartlist_add_all(routers, rl->routers);
-  smartlist_sort(routers, _compare_routerinfo_by_id_digest);
+  routers_sort_by_identity(routers);
   omit_as_sybil = get_possible_sybil_list(routers);
 
   routerstatuses = smartlist_create();
@@ -2337,7 +2328,7 @@ generate_networkstatus_opinion(int v2)
 
   routers = smartlist_create();
   smartlist_add_all(routers, rl->routers);
-  smartlist_sort(routers, _compare_routerinfo_by_id_digest);
+  routers_sort_by_identity(routers);
 
   omit_as_sybil = get_possible_sybil_list(routers);
 
index c974adb0f3e4771b12a336a4861d6ec5b882d451..d4e692cad74d095126d47777c1902669b27c475f 100644 (file)
@@ -4403,3 +4403,21 @@ esc_router_info(routerinfo_t *router)
   return info;
 }
 
+/** Helper for sorting: compare two routerinfos by their identity
+ * digest. */
+static int
+_compare_routerinfo_by_id_digest(const void **a, const void **b)
+{
+  routerinfo_t *first = *(routerinfo_t **)a, *second = *(routerinfo_t **)b;
+  return memcmp(first->cache_info.identity_digest,
+                second->cache_info.identity_digest,
+                DIGEST_LEN);
+}
+
+/** Sort a list of routerinfo_t in ascending order of identity digest. */
+void
+routers_sort_by_identity(smartlist_t *routers)
+{
+  smartlist_sort(routers, _compare_routerinfo_by_id_digest);
+}
+