From 594e5ce635481a2aca60bbb31b656e3970ad511b Mon Sep 17 00:00:00 2001 From: Victor Nepveu Date: Tue, 12 Nov 2019 22:27:36 +0100 Subject: [PATCH 1/8] Refactor routerstatus_has_changed function - Check all fields that might change in a routerstatus - Document the refactoring Signed-off-by: Victor Nepveu --- changes/ticket20218 | 3 +++ src/feature/nodelist/fmt_routerstatus.c | 2 ++ src/feature/nodelist/networkstatus.c | 22 +++++++++++++++++----- src/feature/nodelist/routerstatus_st.h | 4 ++++ 4 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 changes/ticket20218 diff --git a/changes/ticket20218 b/changes/ticket20218 new file mode 100644 index 0000000000..d5fb2b2cfd --- /dev/null +++ b/changes/ticket20218 @@ -0,0 +1,3 @@ + o Minor bugfixes (controller): + - In routerstatus_has_changed(), check all the fields that are output over the control port. + Fixes bug 20218; bugfix on 0.1.1.11-alpha diff --git a/src/feature/nodelist/fmt_routerstatus.c b/src/feature/nodelist/fmt_routerstatus.c index 8dde0088de..dc44a6ef9c 100644 --- a/src/feature/nodelist/fmt_routerstatus.c +++ b/src/feature/nodelist/fmt_routerstatus.c @@ -124,6 +124,8 @@ routerstatus_format_entry(const routerstatus_t *rs, const char *version, if (format != NS_CONTROL_PORT) { /* Blow up more or less nicely if we didn't get anything or not the * thing we expected. + * This should be kept in sync with the function + * routerstatus_has_changed and the struct routerstatus_t */ if (!desc) { char id[HEX_DIGEST_LEN+1]; diff --git a/src/feature/nodelist/networkstatus.c b/src/feature/nodelist/networkstatus.c index 7868020477..df035ef1b3 100644 --- a/src/feature/nodelist/networkstatus.c +++ b/src/feature/nodelist/networkstatus.c @@ -101,6 +101,7 @@ #include "feature/nodelist/routerlist_st.h" #include "feature/dirauth/vote_microdesc_hash_st.h" #include "feature/nodelist/vote_routerstatus_st.h" +#include "routerstatus_st.h" #ifdef HAVE_UNISTD_H #include @@ -1603,8 +1604,14 @@ networkstatus_consensus_has_ipv6(const or_options_t* options) } } -/** Given two router status entries for the same router identity, return 1 if - * if the contents have changed between them. Otherwise, return 0. */ +/** Given two router status entries for the same router identity, return 1 + * if the contents have changed between them. Otherwise, return 0. + * It only checks for fields that are output by control port. + * This should be kept in sync with the struct routerstatus_t + * and the printing function routerstatus_format_entry in + * NS_CONTROL_PORT mode. + **/ + static int routerstatus_has_changed(const routerstatus_t *a, const routerstatus_t *b) { @@ -1625,9 +1632,14 @@ routerstatus_has_changed(const routerstatus_t *a, const routerstatus_t *b) a->is_valid != b->is_valid || a->is_possible_guard != b->is_possible_guard || a->is_bad_exit != b->is_bad_exit || - a->is_hs_dir != b->is_hs_dir; - // XXXX this function needs a huge refactoring; it has gotten out - // XXXX of sync with routerstatus_t, and it will do so again. + a->is_hs_dir != b->is_hs_dir || + a->is_staledesc != b->is_staledesc || + a->has_bandwidth != b->has_bandwidth || + a->published_on != b->published_on || + a->ipv6_orport != b->ipv6_orport || + a->is_v2_dir != b->is_v2_dir || + a->bandwidth_kb != b->bandwidth_kb || + tor_addr_compare(&a->ipv6_addr, &b->ipv6_addr, CMP_EXACT); } /** Notify controllers of any router status entries that changed between diff --git a/src/feature/nodelist/routerstatus_st.h b/src/feature/nodelist/routerstatus_st.h index 270cb871a2..eb6c3e5cfc 100644 --- a/src/feature/nodelist/routerstatus_st.h +++ b/src/feature/nodelist/routerstatus_st.h @@ -17,6 +17,10 @@ /** Contents of a single router entry in a network status object. */ struct routerstatus_t { + /* This should be kept in sync with the function + * routerstatus_has_changed and the printing function + * routerstatus_format_entry in NS_CONTROL_PORT mode. + */ time_t published_on; /**< When was this router published? */ char nickname[MAX_NICKNAME_LEN+1]; /**< The nickname this router says it * has. */ From 60a0d7d1e89df47a12c806585ef41e0b98c5d675 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 16 Jan 2020 12:14:12 -0500 Subject: [PATCH 2/8] expose routerstatus_has_changed to unit tests. --- src/feature/nodelist/networkstatus.c | 3 +-- src/feature/nodelist/networkstatus.h | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/feature/nodelist/networkstatus.c b/src/feature/nodelist/networkstatus.c index df035ef1b3..208efcef66 100644 --- a/src/feature/nodelist/networkstatus.c +++ b/src/feature/nodelist/networkstatus.c @@ -1611,8 +1611,7 @@ networkstatus_consensus_has_ipv6(const or_options_t* options) * and the printing function routerstatus_format_entry in * NS_CONTROL_PORT mode. **/ - -static int +STATIC int routerstatus_has_changed(const routerstatus_t *a, const routerstatus_t *b) { tor_assert(tor_memeq(a->identity_digest, b->identity_digest, DIGEST_LEN)); diff --git a/src/feature/nodelist/networkstatus.h b/src/feature/nodelist/networkstatus.h index b8430088c9..7b63e30e9c 100644 --- a/src/feature/nodelist/networkstatus.h +++ b/src/feature/nodelist/networkstatus.h @@ -164,6 +164,8 @@ STATIC void warn_early_consensus(const networkstatus_t *c, const char *flavor, extern networkstatus_t *current_ns_consensus; extern networkstatus_t *current_md_consensus; #endif /* defined(TOR_UNIT_TESTS) */ +STATIC int routerstatus_has_changed(const routerstatus_t *a, + const routerstatus_t *b); #endif /* defined(NETWORKSTATUS_PRIVATE) */ #endif /* !defined(TOR_NETWORKSTATUS_H) */ From 702a753cf310cd214df2fd1b72d974923514a0a5 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 16 Jan 2020 12:14:14 -0500 Subject: [PATCH 3/8] Add unit test for routerstatus_has_changed() --- src/test/test_nodelist.c | 132 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) diff --git a/src/test/test_nodelist.c b/src/test/test_nodelist.c index dc7faee5be..8a36de58d9 100644 --- a/src/test/test_nodelist.c +++ b/src/test/test_nodelist.c @@ -7,6 +7,7 @@ **/ #define NODELIST_PRIVATE +#define NETWORKSTATUS_PRIVATE #include "core/or/or.h" #include "lib/crypt_ops/crypto_rand.h" @@ -1246,6 +1247,136 @@ test_nodelist_router_get_verbose_nickname(void *arg) return; } +static void +test_nodelist_routerstatus_has_changed(void *arg) +{ + (void)arg; + routerstatus_t rs_orig, rs; + memset(&rs_orig, 0, sizeof(rs_orig)); + strlcpy(rs_orig.nickname, "friendly", sizeof(rs_orig.nickname)); + memcpy(rs_orig.identity_digest, "abcdefghijklmnopqrst", 20); + memcpy(rs_orig.descriptor_digest, "abcdefghijklmnopqrst", 20); + rs_orig.addr = 0x7f000001; + rs_orig.or_port = 3; + rs_orig.published_on = time(NULL); + +#define COPY() memcpy(&rs, &rs_orig, sizeof(rs)) +#define ASSERT_SAME() \ + STMT_BEGIN \ + tt_assert(! routerstatus_has_changed(&rs_orig, &rs)); \ + COPY(); \ + STMT_END +#define ASSERT_CHANGED() \ + STMT_BEGIN \ + tt_assert(routerstatus_has_changed(&rs_orig, &rs)); \ + COPY(); \ + STMT_END + + COPY(); + ASSERT_SAME(); + + rs.addr = 0x7f000002; + ASSERT_CHANGED(); + + strlcpy(rs.descriptor_digest, "hello world", sizeof(rs.descriptor_digest)); + ASSERT_CHANGED(); + + strlcpy(rs.nickname, "fr1end1y", sizeof(rs.nickname)); + ASSERT_CHANGED(); + + rs.published_on += 3600; + ASSERT_CHANGED(); + + rs.or_port = 55; + ASSERT_CHANGED(); + + rs.dir_port = 9999; + ASSERT_CHANGED(); + + tor_addr_parse(&rs.ipv6_addr, "1234::56"); + ASSERT_CHANGED(); + + rs.ipv6_orport = 22; + ASSERT_CHANGED(); + + rs.is_authority = 1; + ASSERT_CHANGED(); + + rs.is_exit = 1; + ASSERT_CHANGED(); + + rs.is_stable = 1; + ASSERT_CHANGED(); + + rs.is_fast = 1; + ASSERT_CHANGED(); + + rs.is_flagged_running = 1; + ASSERT_CHANGED(); + + // Isn't this obsolete? + rs.is_named = 1; + ASSERT_CHANGED(); + + // Isn't this obsolete? + rs.is_unnamed = 1; + ASSERT_CHANGED(); + + rs.is_valid = 1; + ASSERT_CHANGED(); + + rs.is_possible_guard = 1; + ASSERT_CHANGED(); + + rs.is_bad_exit = 1; + ASSERT_CHANGED(); + + rs.is_hs_dir = 1; + ASSERT_CHANGED(); + + rs.is_v2_dir = 1; + ASSERT_CHANGED(); + + rs.is_staledesc = 1; + ASSERT_CHANGED(); + + rs.has_bandwidth = 1; + ASSERT_CHANGED(); + + // Does not actually matter unless exitsummary changes. + rs.has_exitsummary = 1; + ASSERT_SAME(); + + // Does not actually matter; not visible to the controller. + rs.bw_is_unmeasured = 1; + ASSERT_SAME(); + + rs.bandwidth_kb = 2000; + ASSERT_CHANGED(); + + // not visible to the controller. + rs.has_guardfraction = 1; + rs.guardfraction_percentage = 22; + ASSERT_SAME(); + + // not visible to the controller. + rs_orig.has_guardfraction = 1; + rs_orig.guardfraction_percentage = 20; + COPY(); + rs.guardfraction_percentage = 25; + ASSERT_SAME(); + + // not visible to the controller. + rs.exitsummary = (char*)"accept 1-2"; + ASSERT_SAME(); + + done: +#undef COPY +#undef ASSERT_SAME +#undef ASSERT_CHANGED + return; +} + #define NODE(name, flags) \ { #name, test_nodelist_##name, (flags), NULL, NULL } @@ -1266,5 +1397,6 @@ struct testcase_t nodelist_tests[] = { NODE(routerstatus_describe, 0), NODE(extend_info_describe, 0), NODE(router_get_verbose_nickname, 0), + NODE(routerstatus_has_changed, 0), END_OF_TESTCASES }; From c3633e6b295f9dbafd4c86795dfa79ed784c3bd2 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 17 Jan 2020 09:20:00 -0500 Subject: [PATCH 4/8] Update routerstatus_has_changed tests. Now they also check whether output of routerstatus_format_entry() has changed. --- src/test/test_nodelist.c | 49 ++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/src/test/test_nodelist.c b/src/test/test_nodelist.c index 8a36de58d9..d47cfc090b 100644 --- a/src/test/test_nodelist.c +++ b/src/test/test_nodelist.c @@ -18,6 +18,8 @@ #include "feature/nodelist/torcert.h" #include "core/or/extend_info_st.h" +#include "feature/dirauth/dirvote.h" +#include "feature/nodelist/fmt_routerstatus.h" #include "feature/nodelist/microdesc_st.h" #include "feature/nodelist/networkstatus_st.h" #include "feature/nodelist/node_st.h" @@ -1252,6 +1254,7 @@ test_nodelist_routerstatus_has_changed(void *arg) { (void)arg; routerstatus_t rs_orig, rs; + char *fmt_orig = NULL, *fmt = NULL; memset(&rs_orig, 0, sizeof(rs_orig)); strlcpy(rs_orig.nickname, "friendly", sizeof(rs_orig.nickname)); memcpy(rs_orig.identity_digest, "abcdefghijklmnopqrst", 20); @@ -1259,14 +1262,39 @@ test_nodelist_routerstatus_has_changed(void *arg) rs_orig.addr = 0x7f000001; rs_orig.or_port = 3; rs_orig.published_on = time(NULL); + rs_orig.has_bandwidth = 1; + rs_orig.bandwidth_kb = 20; #define COPY() memcpy(&rs, &rs_orig, sizeof(rs)) +#define FORMAT() \ + STMT_BEGIN \ + tor_free(fmt_orig); \ + tor_free(fmt); \ + fmt_orig = routerstatus_format_entry(&rs_orig, NULL, NULL, \ + NS_CONTROL_PORT, \ + ROUTERSTATUS_FORMAT_NO_CONSENSUS_METHOD, \ + NULL); \ + fmt = routerstatus_format_entry(&rs, NULL, NULL, NS_CONTROL_PORT, \ + ROUTERSTATUS_FORMAT_NO_CONSENSUS_METHOD, \ + NULL); \ + tt_assert(fmt_orig); \ + tt_assert(fmt); \ + STMT_END #define ASSERT_SAME() \ STMT_BEGIN \ tt_assert(! routerstatus_has_changed(&rs_orig, &rs)); \ + FORMAT(); \ + tt_str_op(fmt_orig, OP_EQ, fmt); \ COPY(); \ STMT_END #define ASSERT_CHANGED() \ + STMT_BEGIN \ + tt_assert(routerstatus_has_changed(&rs_orig, &rs)); \ + FORMAT(); \ + tt_str_op(fmt_orig, OP_NE, fmt); \ + COPY(); \ + STMT_END +#define ASSERT_CHANGED_NO_FORMAT() \ STMT_BEGIN \ tt_assert(routerstatus_has_changed(&rs_orig, &rs)); \ COPY(); \ @@ -1296,6 +1324,9 @@ test_nodelist_routerstatus_has_changed(void *arg) tor_addr_parse(&rs.ipv6_addr, "1234::56"); ASSERT_CHANGED(); + tor_addr_parse(&rs_orig.ipv6_addr, "1234::56"); + rs_orig.ipv6_orport = 99; + COPY(); rs.ipv6_orport = 22; ASSERT_CHANGED(); @@ -1314,13 +1345,13 @@ test_nodelist_routerstatus_has_changed(void *arg) rs.is_flagged_running = 1; ASSERT_CHANGED(); - // Isn't this obsolete? + // This option is obsolete and not actually formatted. rs.is_named = 1; - ASSERT_CHANGED(); + ASSERT_CHANGED_NO_FORMAT(); - // Isn't this obsolete? + // This option is obsolete and not actually formatted. rs.is_unnamed = 1; - ASSERT_CHANGED(); + ASSERT_CHANGED_NO_FORMAT(); rs.is_valid = 1; ASSERT_CHANGED(); @@ -1340,10 +1371,12 @@ test_nodelist_routerstatus_has_changed(void *arg) rs.is_staledesc = 1; ASSERT_CHANGED(); - rs.has_bandwidth = 1; - ASSERT_CHANGED(); + // Setting this to zero crashes us with an assertion failure in + // routerstatus_format_entry() if we don't have a descriptor. + rs.has_bandwidth = 0; + ASSERT_CHANGED_NO_FORMAT(); - // Does not actually matter unless exitsummary changes. + // Does not actually matter; not visible to controller. rs.has_exitsummary = 1; ASSERT_SAME(); @@ -1374,6 +1407,8 @@ test_nodelist_routerstatus_has_changed(void *arg) #undef COPY #undef ASSERT_SAME #undef ASSERT_CHANGED + tor_free(fmt_orig); + tor_free(fmt); return; } From 152cbf2a5987128efc708f99b10cd6c8ad9862d8 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 17 Jan 2020 09:22:12 -0500 Subject: [PATCH 5/8] Rename routerstatus_has_changed to routerstatus_has_visibly_changed This is an automated commit, generated by this command: ./scripts/maint/rename_c_identifier.py \ routerstatus_has_changed routerstatus_has_visibly_changed It was generated with --no-verify, since it introduces a wide line. I'll fix it in a subsequent commit. --- src/feature/nodelist/fmt_routerstatus.c | 2 +- src/feature/nodelist/networkstatus.c | 4 ++-- src/feature/nodelist/networkstatus.h | 2 +- src/feature/nodelist/routerstatus_st.h | 2 +- src/test/test_nodelist.c | 8 ++++---- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/feature/nodelist/fmt_routerstatus.c b/src/feature/nodelist/fmt_routerstatus.c index dc44a6ef9c..2026d0c586 100644 --- a/src/feature/nodelist/fmt_routerstatus.c +++ b/src/feature/nodelist/fmt_routerstatus.c @@ -125,7 +125,7 @@ routerstatus_format_entry(const routerstatus_t *rs, const char *version, /* Blow up more or less nicely if we didn't get anything or not the * thing we expected. * This should be kept in sync with the function - * routerstatus_has_changed and the struct routerstatus_t + * routerstatus_has_visibly_changed and the struct routerstatus_t */ if (!desc) { char id[HEX_DIGEST_LEN+1]; diff --git a/src/feature/nodelist/networkstatus.c b/src/feature/nodelist/networkstatus.c index 208efcef66..03edfe62b1 100644 --- a/src/feature/nodelist/networkstatus.c +++ b/src/feature/nodelist/networkstatus.c @@ -1612,7 +1612,7 @@ networkstatus_consensus_has_ipv6(const or_options_t* options) * NS_CONTROL_PORT mode. **/ STATIC int -routerstatus_has_changed(const routerstatus_t *a, const routerstatus_t *b) +routerstatus_has_visibly_changed(const routerstatus_t *a, const routerstatus_t *b) { tor_assert(tor_memeq(a->identity_digest, b->identity_digest, DIGEST_LEN)); @@ -1670,7 +1670,7 @@ notify_control_networkstatus_changed(const networkstatus_t *old_c, tor_memcmp(rs_old->identity_digest, rs_new->identity_digest, DIGEST_LEN), smartlist_add(changed, (void*) rs_new)) { - if (routerstatus_has_changed(rs_old, rs_new)) + if (routerstatus_has_visibly_changed(rs_old, rs_new)) smartlist_add(changed, (void*)rs_new); } SMARTLIST_FOREACH_JOIN_END(rs_old, rs_new); diff --git a/src/feature/nodelist/networkstatus.h b/src/feature/nodelist/networkstatus.h index 7b63e30e9c..705bb12b8a 100644 --- a/src/feature/nodelist/networkstatus.h +++ b/src/feature/nodelist/networkstatus.h @@ -164,7 +164,7 @@ STATIC void warn_early_consensus(const networkstatus_t *c, const char *flavor, extern networkstatus_t *current_ns_consensus; extern networkstatus_t *current_md_consensus; #endif /* defined(TOR_UNIT_TESTS) */ -STATIC int routerstatus_has_changed(const routerstatus_t *a, +STATIC int routerstatus_has_visibly_changed(const routerstatus_t *a, const routerstatus_t *b); #endif /* defined(NETWORKSTATUS_PRIVATE) */ diff --git a/src/feature/nodelist/routerstatus_st.h b/src/feature/nodelist/routerstatus_st.h index eb6c3e5cfc..735c754b31 100644 --- a/src/feature/nodelist/routerstatus_st.h +++ b/src/feature/nodelist/routerstatus_st.h @@ -18,7 +18,7 @@ */ struct routerstatus_t { /* This should be kept in sync with the function - * routerstatus_has_changed and the printing function + * routerstatus_has_visibly_changed and the printing function * routerstatus_format_entry in NS_CONTROL_PORT mode. */ time_t published_on; /**< When was this router published? */ diff --git a/src/test/test_nodelist.c b/src/test/test_nodelist.c index d47cfc090b..c568e3698b 100644 --- a/src/test/test_nodelist.c +++ b/src/test/test_nodelist.c @@ -1282,21 +1282,21 @@ test_nodelist_routerstatus_has_changed(void *arg) STMT_END #define ASSERT_SAME() \ STMT_BEGIN \ - tt_assert(! routerstatus_has_changed(&rs_orig, &rs)); \ + tt_assert(! routerstatus_has_visibly_changed(&rs_orig, &rs)); \ FORMAT(); \ tt_str_op(fmt_orig, OP_EQ, fmt); \ COPY(); \ STMT_END #define ASSERT_CHANGED() \ STMT_BEGIN \ - tt_assert(routerstatus_has_changed(&rs_orig, &rs)); \ + tt_assert(routerstatus_has_visibly_changed(&rs_orig, &rs)); \ FORMAT(); \ tt_str_op(fmt_orig, OP_NE, fmt); \ COPY(); \ STMT_END #define ASSERT_CHANGED_NO_FORMAT() \ STMT_BEGIN \ - tt_assert(routerstatus_has_changed(&rs_orig, &rs)); \ + tt_assert(routerstatus_has_visibly_changed(&rs_orig, &rs)); \ COPY(); \ STMT_END @@ -1432,6 +1432,6 @@ struct testcase_t nodelist_tests[] = { NODE(routerstatus_describe, 0), NODE(extend_info_describe, 0), NODE(router_get_verbose_nickname, 0), - NODE(routerstatus_has_changed, 0), + NODE(routerstatus_has_visibly_changed, 0), END_OF_TESTCASES }; From e2637214f2340e46c9e9042ca357e48c65df4f76 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 17 Jan 2020 09:23:32 -0500 Subject: [PATCH 6/8] split a wide line --- src/feature/nodelist/networkstatus.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/feature/nodelist/networkstatus.c b/src/feature/nodelist/networkstatus.c index 03edfe62b1..042852eb86 100644 --- a/src/feature/nodelist/networkstatus.c +++ b/src/feature/nodelist/networkstatus.c @@ -1612,7 +1612,8 @@ networkstatus_consensus_has_ipv6(const or_options_t* options) * NS_CONTROL_PORT mode. **/ STATIC int -routerstatus_has_visibly_changed(const routerstatus_t *a, const routerstatus_t *b) +routerstatus_has_visibly_changed(const routerstatus_t *a, + const routerstatus_t *b) { tor_assert(tor_memeq(a->identity_digest, b->identity_digest, DIGEST_LEN)); From 4541289f2a7e7a79da8cea38a94af5afd9ac9f72 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 17 Jan 2020 09:27:58 -0500 Subject: [PATCH 7/8] Rename test to match new identifier. --- src/test/test_nodelist.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/test_nodelist.c b/src/test/test_nodelist.c index c568e3698b..388cd74f3b 100644 --- a/src/test/test_nodelist.c +++ b/src/test/test_nodelist.c @@ -1250,7 +1250,7 @@ test_nodelist_router_get_verbose_nickname(void *arg) } static void -test_nodelist_routerstatus_has_changed(void *arg) +test_nodelist_routerstatus_has_visibly_changed(void *arg) { (void)arg; routerstatus_t rs_orig, rs; From af30be9515931d3eafbd6efc8e2caf1122ad6bec Mon Sep 17 00:00:00 2001 From: teor Date: Mon, 20 Jan 2020 13:42:13 +1000 Subject: [PATCH 8/8] test/nodelist: Remove ROUTERSTATUS_FORMAT_NO_CONSENSUS_METHOD When we removed obsolete consensus methods in 32695, we also removed ROUTERSTATUS_FORMAT_NO_CONSENSUS_METHOD, so we need to remove it from the routerstatus format tests. Part of 20218. --- src/test/test_nodelist.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/test_nodelist.c b/src/test/test_nodelist.c index 388cd74f3b..fbbbf0a99f 100644 --- a/src/test/test_nodelist.c +++ b/src/test/test_nodelist.c @@ -1272,10 +1272,8 @@ test_nodelist_routerstatus_has_visibly_changed(void *arg) tor_free(fmt); \ fmt_orig = routerstatus_format_entry(&rs_orig, NULL, NULL, \ NS_CONTROL_PORT, \ - ROUTERSTATUS_FORMAT_NO_CONSENSUS_METHOD, \ NULL); \ fmt = routerstatus_format_entry(&rs, NULL, NULL, NS_CONTROL_PORT, \ - ROUTERSTATUS_FORMAT_NO_CONSENSUS_METHOD, \ NULL); \ tt_assert(fmt_orig); \ tt_assert(fmt); \