diff options
author | teor <teor@torproject.org> | 2020-02-12 12:21:53 +1000 |
---|---|---|
committer | teor <teor@torproject.org> | 2020-02-12 12:21:53 +1000 |
commit | d8cef680fccd7527903a56e9383f3239c38eace3 (patch) | |
tree | f056a7cf154b7f4c51c296a7cd6a2595c9e750c8 | |
parent | ec454830e71170bf2ed2c84bcdfb9037f64dc136 (diff) | |
parent | b9c7c61ea5233854ff83257a8bc530b7e0a50351 (diff) | |
download | tor-d8cef680fccd7527903a56e9383f3239c38eace3.tar.gz tor-d8cef680fccd7527903a56e9383f3239c38eace3.zip |
Merge branch 'maint-0.3.5' into release-0.3.5
-rw-r--r-- | .travis.yml | 2 | ||||
-rw-r--r-- | changes/bug32753 | 3 | ||||
-rw-r--r-- | changes/ticket33075 | 4 | ||||
-rw-r--r-- | src/app/config/config.c | 2 | ||||
-rw-r--r-- | src/feature/relay/router.c | 15 | ||||
-rw-r--r-- | src/test/test_config.c | 22 |
6 files changed, 37 insertions, 11 deletions
diff --git a/.travis.yml b/.travis.yml index 7f7e7a5723..28a45788b4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -93,8 +93,6 @@ matrix: os: osx - env: CHUTNEY="yes" CHUTNEY_ALLOW_FAILURES="2" SKIP_MAKE_CHECK="yes" os: osx - ## test-stem sometimes hangs on Travis - - env: TEST_STEM="yes" SKIP_MAKE_CHECK="yes" ## (Linux only) Use a recent Linux image (Ubuntu Bionic) dist: bionic 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/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. 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; } |