Loading src/or/dirserv.c +1 −1 Original line number Diff line number Diff line Loading @@ -1852,7 +1852,7 @@ get_possible_sybil_list(const smartlist_t *routers) last_addr = ri->addr; addr_count = 1; } else if (++addr_count > MAX_WITH_SAME_ADDR) { if (!router_digest_is_trusted_dir(ri->cache_info.identity_digest) || if (!router_addr_is_trusted_dir(ri->addr) || addr_count > MAX_WITH_SAME_ADDR_ON_AUTHORITY) digestmap_set(omit_as_sybil, ri->cache_info.identity_digest, ri); } Loading src/or/or.h +1 −0 Original line number Diff line number Diff line Loading @@ -3555,6 +3555,7 @@ int router_digest_is_trusted_dir_type(const char *digest, authority_type_t type); #define router_digest_is_trusted_dir(d) \ router_digest_is_trusted_dir_type((d), 0) int router_addr_is_trusted_dir(uint32_t addr); routerlist_t *router_get_routerlist(void); void routerlist_reset_warnings(void); void routerlist_free(routerlist_t *routerlist); Loading src/or/routerlist.c +14 −0 Original line number Diff line number Diff line Loading @@ -1783,6 +1783,20 @@ router_digest_is_trusted_dir_type(const char *digest, authority_type_t type) return 0; } /** Return true iff <b>addr</b> is the address of one of our trusted * directory authorities. */ int router_addr_is_trusted_dir(uint32_t addr) { if (!trusted_dir_servers) return 0; SMARTLIST_FOREACH(trusted_dir_servers, trusted_dir_server_t *, ent, if (ent->addr == addr) return 1; ); return 0; } /** If hexdigest is correctly formed, base16_decode it into * digest, which must have DIGEST_LEN space in it. * Return 0 on success, -1 on failure. Loading Loading
src/or/dirserv.c +1 −1 Original line number Diff line number Diff line Loading @@ -1852,7 +1852,7 @@ get_possible_sybil_list(const smartlist_t *routers) last_addr = ri->addr; addr_count = 1; } else if (++addr_count > MAX_WITH_SAME_ADDR) { if (!router_digest_is_trusted_dir(ri->cache_info.identity_digest) || if (!router_addr_is_trusted_dir(ri->addr) || addr_count > MAX_WITH_SAME_ADDR_ON_AUTHORITY) digestmap_set(omit_as_sybil, ri->cache_info.identity_digest, ri); } Loading
src/or/or.h +1 −0 Original line number Diff line number Diff line Loading @@ -3555,6 +3555,7 @@ int router_digest_is_trusted_dir_type(const char *digest, authority_type_t type); #define router_digest_is_trusted_dir(d) \ router_digest_is_trusted_dir_type((d), 0) int router_addr_is_trusted_dir(uint32_t addr); routerlist_t *router_get_routerlist(void); void routerlist_reset_warnings(void); void routerlist_free(routerlist_t *routerlist); Loading
src/or/routerlist.c +14 −0 Original line number Diff line number Diff line Loading @@ -1783,6 +1783,20 @@ router_digest_is_trusted_dir_type(const char *digest, authority_type_t type) return 0; } /** Return true iff <b>addr</b> is the address of one of our trusted * directory authorities. */ int router_addr_is_trusted_dir(uint32_t addr) { if (!trusted_dir_servers) return 0; SMARTLIST_FOREACH(trusted_dir_servers, trusted_dir_server_t *, ent, if (ent->addr == addr) return 1; ); return 0; } /** If hexdigest is correctly formed, base16_decode it into * digest, which must have DIGEST_LEN space in it. * Return 0 on success, -1 on failure. Loading