diff options
Diffstat (limited to 'src/or/config.c')
-rw-r--r-- | src/or/config.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/or/config.c b/src/or/config.c index a1960dd8fc..39d7f5b589 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -1208,6 +1208,7 @@ options_act(or_options_t *old_options) return -1; if (options->ClientTransportPlugin) { + clear_transport_list(); for (cl = options->ClientTransportPlugin; cl; cl = cl->next) { if (parse_transport_line(cl->value, 0)<0) { log_warn(LD_BUG, @@ -1230,6 +1231,13 @@ options_act(or_options_t *old_options) sweep_bridge_list(); } + /** Okay, we have Bridges and we have ClientTransportPlugins. Let's + match them together. */ + if (options->Bridges && options->ClientTransportPlugin) { + if (match_bridges_with_transports() < 0) + return -1; + } + if (running_tor && rend_config_services(options, 0)<0) { log_warn(LD_BUG, "Previously validated hidden services line could not be added!"); @@ -4629,7 +4637,7 @@ parse_bridge_line(const char *line, int validate_only) fmt_addr(&addr), (int)port, transport_name, fingerprint ? fingerprint : "no key listed"); bridge_add_from_config(&addr, port, - fingerprint ? digest : NULL/*, transport_name*/); + fingerprint ? digest : NULL, transport_name); } r = 0; @@ -4702,8 +4710,8 @@ parse_transport_line(const char *line, int validate_only) if (!validate_only) { log_warn(LD_DIR, "Transport %s at %s:%d", name, fmt_addr(&addr), (int)port); - /* transport_add_from_config(&addr, port, - fingerprint ? digest : NULL, transport); */ + transport_add_from_config(&addr, port, name, + socks_ver); } r = 0; |