From 9d771ccc86a7b8f04a40d619b78f7d99f67c176f Mon Sep 17 00:00:00 2001 From: teor Date: Tue, 28 Jan 2020 19:55:35 +1000 Subject: Travis: Stop allowing stem test failures Stop allowing failures on the Travis CI stem tests job. It looks like all the stem hangs we were seeing are now fixed, but let's make sure we see them if they happen again. Closes ticket 33075. --- changes/ticket33075 | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 changes/ticket33075 (limited to 'changes') diff --git a/changes/ticket33075 b/changes/ticket33075 new file mode 100644 index 0000000000..69698d90b3 --- /dev/null +++ b/changes/ticket33075 @@ -0,0 +1,4 @@ + o Testing: + - Stop allowing failures on the Travis CI stem tests job. It looks like all + the stem hangs we were seeing are now fixed, but let's make sure we see + them if they happen again. Closes ticket 33075. -- cgit v1.2.3-54-g00ecf From b9c7c61ea5233854ff83257a8bc530b7e0a50351 Mon Sep 17 00:00:00 2001 From: Alexander Færøy Date: Wed, 15 Jan 2020 17:18:30 +0000 Subject: Lowercase the BridgeDistribution value from torrc in descriptors. This patch ensures that we always lowercase the BridgeDistribution from torrc in descriptors before submitting it. See: https://bugs.torproject.org/32753 --- changes/bug32753 | 3 +++ src/app/config/config.c | 2 +- src/feature/relay/router.c | 15 ++++++++++----- src/test/test_config.c | 22 +++++++++++++++++++--- 4 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 changes/bug32753 (limited to 'changes') diff --git a/changes/bug32753 b/changes/bug32753 new file mode 100644 index 0000000000..6f59c7729d --- /dev/null +++ b/changes/bug32753 @@ -0,0 +1,3 @@ + o Minor bugfixes (bridges): + - Lowercase the value of BridgeDistribution from torrc before adding it to + the descriptor. Fixes bug 32753; bugfix on 0.3.2.3-alpha. diff --git a/src/app/config/config.c b/src/app/config/config.c index 0b1b758d96..cbca7d3899 100644 --- a/src/app/config/config.c +++ b/src/app/config/config.c @@ -6839,7 +6839,7 @@ check_bridge_distribution_setting(const char *bd) }; unsigned i; for (i = 0; i < ARRAY_LENGTH(RECOGNIZED); ++i) { - if (!strcmp(bd, RECOGNIZED[i])) + if (!strcasecmp(bd, RECOGNIZED[i])) return 0; } diff --git a/src/feature/relay/router.c b/src/feature/relay/router.c index 1dbaf2ed66..e91550a78c 100644 --- a/src/feature/relay/router.c +++ b/src/feature/relay/router.c @@ -2635,15 +2635,20 @@ router_dump_router_to_string(routerinfo_t *router, } if (options->BridgeRelay) { - const char *bd; + char *bd = NULL; + if (options->BridgeDistribution && strlen(options->BridgeDistribution)) { - bd = options->BridgeDistribution; + bd = tor_strdup(options->BridgeDistribution); } else { - bd = "any"; + bd = tor_strdup("any"); } - if (strchr(bd, '\n') || strchr(bd, '\r')) - bd = escaped(bd); + + // Make sure our value is lowercased in the descriptor instead of just + // forwarding what the user wrote in their torrc directly. + tor_strlower(bd); + smartlist_add_asprintf(chunks, "bridge-distribution-request %s\n", bd); + tor_free(bd); } if (router->onion_curve25519_pkey) { diff --git a/src/test/test_config.c b/src/test/test_config.c index 8f011ce1f1..855725411a 100644 --- a/src/test/test_config.c +++ b/src/test/test_config.c @@ -5620,11 +5620,27 @@ test_config_check_bridge_distribution_setting_not_a_bridge(void *arg) static void test_config_check_bridge_distribution_setting_valid(void *arg) { - int ret = check_bridge_distribution_setting("https"); - (void)arg; - tt_int_op(ret, OP_EQ, 0); + // Check all the possible values we support right now. + tt_int_op(check_bridge_distribution_setting("none"), OP_EQ, 0); + tt_int_op(check_bridge_distribution_setting("any"), OP_EQ, 0); + tt_int_op(check_bridge_distribution_setting("https"), OP_EQ, 0); + tt_int_op(check_bridge_distribution_setting("email"), OP_EQ, 0); + tt_int_op(check_bridge_distribution_setting("moat"), OP_EQ, 0); + + // Check all the possible values we support right now with weird casing. + tt_int_op(check_bridge_distribution_setting("NoNe"), OP_EQ, 0); + tt_int_op(check_bridge_distribution_setting("anY"), OP_EQ, 0); + tt_int_op(check_bridge_distribution_setting("hTTps"), OP_EQ, 0); + tt_int_op(check_bridge_distribution_setting("emAIl"), OP_EQ, 0); + tt_int_op(check_bridge_distribution_setting("moAt"), OP_EQ, 0); + + // Invalid values. + tt_int_op(check_bridge_distribution_setting("x\rx"), OP_EQ, -1); + tt_int_op(check_bridge_distribution_setting("x\nx"), OP_EQ, -1); + tt_int_op(check_bridge_distribution_setting("\t\t\t"), OP_EQ, -1); + done: return; } -- cgit v1.2.3-54-g00ecf