Loading src/or/networkstatus.c +3 −3 Original line number Diff line number Diff line Loading @@ -2360,10 +2360,10 @@ client_would_use_router(const routerstatus_t *rs, time_t now, /* We'd drop it immediately for being too old. */ return 0; } if (!routerstatus_version_supports_ntor(rs, 1)) { /* We'd ignore it because it doesn't support ntor. if (!routerstatus_version_supports_extend2_cells(rs, 1)) { /* We'd ignore it because it doesn't support EXTEND2 cells. * If we don't know the version, download the descriptor so we can * check if it supports ntor. */ * check if it supports EXTEND2 cells and ntor. */ return 0; } return 1; Loading src/or/routerlist.c +8 −6 Original line number Diff line number Diff line Loading @@ -2344,9 +2344,10 @@ router_add_running_nodes_to_smartlist(smartlist_t *sl, int allow_invalid, continue; if (node_is_unreliable(node, need_uptime, need_capacity, need_guard)) continue; /* Don't choose nodes if we are certain they can't do ntor */ if (node->rs && !routerstatus_version_supports_ntor(node->rs, 1)) /* Don't choose nodes if we are certain they can't do EXTEND2 cells */ if (node->rs && !routerstatus_version_supports_extend2_cells(node->rs, 1)) continue; /* Don't choose nodes if we are certain they can't do ntor. */ if ((node->ri || node->md) && !node_has_curve25519_onion_key(node)) continue; /* Choose a node with an OR address that matches the firewall rules */ Loading Loading @@ -5609,12 +5610,13 @@ routerinfo_has_curve25519_onion_key(const routerinfo_t *ri) return 1; } /* Is rs running a tor version known to support ntor? /* Is rs running a tor version known to support EXTEND2 cells? * If allow_unknown_versions is true, return true if we can't tell * (from a versions line or a protocols line) whether it supports ntor. * (from a versions line or a protocols line) whether it supports extend2 * cells. * Otherwise, return false if the version is unknown. */ int routerstatus_version_supports_ntor(const routerstatus_t *rs, routerstatus_version_supports_extend2_cells(const routerstatus_t *rs, int allow_unknown_versions) { if (!rs) { Loading src/or/routerlist.h +2 −2 Original line number Diff line number Diff line Loading @@ -207,7 +207,7 @@ int routerinfo_incompatible_with_extrainfo(const crypto_pk_t *ri, signed_descriptor_t *sd, const char **msg); int routerinfo_has_curve25519_onion_key(const routerinfo_t *ri); int routerstatus_version_supports_ntor(const routerstatus_t *rs, int routerstatus_version_supports_extend2_cells(const routerstatus_t *rs, int allow_unknown_versions); void routerlist_assert_ok(const routerlist_t *rl); Loading Loading
src/or/networkstatus.c +3 −3 Original line number Diff line number Diff line Loading @@ -2360,10 +2360,10 @@ client_would_use_router(const routerstatus_t *rs, time_t now, /* We'd drop it immediately for being too old. */ return 0; } if (!routerstatus_version_supports_ntor(rs, 1)) { /* We'd ignore it because it doesn't support ntor. if (!routerstatus_version_supports_extend2_cells(rs, 1)) { /* We'd ignore it because it doesn't support EXTEND2 cells. * If we don't know the version, download the descriptor so we can * check if it supports ntor. */ * check if it supports EXTEND2 cells and ntor. */ return 0; } return 1; Loading
src/or/routerlist.c +8 −6 Original line number Diff line number Diff line Loading @@ -2344,9 +2344,10 @@ router_add_running_nodes_to_smartlist(smartlist_t *sl, int allow_invalid, continue; if (node_is_unreliable(node, need_uptime, need_capacity, need_guard)) continue; /* Don't choose nodes if we are certain they can't do ntor */ if (node->rs && !routerstatus_version_supports_ntor(node->rs, 1)) /* Don't choose nodes if we are certain they can't do EXTEND2 cells */ if (node->rs && !routerstatus_version_supports_extend2_cells(node->rs, 1)) continue; /* Don't choose nodes if we are certain they can't do ntor. */ if ((node->ri || node->md) && !node_has_curve25519_onion_key(node)) continue; /* Choose a node with an OR address that matches the firewall rules */ Loading Loading @@ -5609,12 +5610,13 @@ routerinfo_has_curve25519_onion_key(const routerinfo_t *ri) return 1; } /* Is rs running a tor version known to support ntor? /* Is rs running a tor version known to support EXTEND2 cells? * If allow_unknown_versions is true, return true if we can't tell * (from a versions line or a protocols line) whether it supports ntor. * (from a versions line or a protocols line) whether it supports extend2 * cells. * Otherwise, return false if the version is unknown. */ int routerstatus_version_supports_ntor(const routerstatus_t *rs, routerstatus_version_supports_extend2_cells(const routerstatus_t *rs, int allow_unknown_versions) { if (!rs) { Loading
src/or/routerlist.h +2 −2 Original line number Diff line number Diff line Loading @@ -207,7 +207,7 @@ int routerinfo_incompatible_with_extrainfo(const crypto_pk_t *ri, signed_descriptor_t *sd, const char **msg); int routerinfo_has_curve25519_onion_key(const routerinfo_t *ri); int routerstatus_version_supports_ntor(const routerstatus_t *rs, int routerstatus_version_supports_extend2_cells(const routerstatus_t *rs, int allow_unknown_versions); void routerlist_assert_ok(const routerlist_t *rl); Loading