diff options
author | teor <teor@torproject.org> | 2019-10-31 12:28:07 +1000 |
---|---|---|
committer | teor <teor@torproject.org> | 2019-11-04 13:10:01 +1000 |
commit | 51ca6dea08ba9408ae7a5373380930966424fac2 (patch) | |
tree | ba0f9273ee9982bc9969a288b748137551494b42 /src/feature/relay/transport_config.c | |
parent | 2dfd18018f7ae087c176dca973b1e8c7eea1b8c9 (diff) | |
download | tor-51ca6dea08ba9408ae7a5373380930966424fac2.tar.gz tor-51ca6dea08ba9408ae7a5373380930966424fac2.zip |
relay: Simplify relay/transport_config
Minor simplification and refactoring.
Part of 32113.
Diffstat (limited to 'src/feature/relay/transport_config.c')
-rw-r--r-- | src/feature/relay/transport_config.c | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/src/feature/relay/transport_config.c b/src/feature/relay/transport_config.c index 4a2eb0d320..e94995a29f 100644 --- a/src/feature/relay/transport_config.c +++ b/src/feature/relay/transport_config.c @@ -40,7 +40,8 @@ * The returned string is allocated on the heap and it's the * responsibility of the caller to free it. */ static char * -get_bindaddr_from_transport_listen_line(const char *line,const char *transport) +get_bindaddr_from_transport_listen_line(const char *line, + const char *transport) { smartlist_t *items = NULL; const char *parsed_transport = NULL; @@ -113,10 +114,11 @@ get_transport_bindaddr_from_config(const char *transport) * The returned smartlist and its strings are allocated on the heap * and it's the responsibility of the caller to free it. */ STATIC smartlist_t * -get_options_from_transport_options_line(const char *line,const char *transport) +get_options_from_transport_options_line(const char *line, + const char *transport) { smartlist_t *items = smartlist_new(); - smartlist_t *options = smartlist_new(); + smartlist_t *pt_options = smartlist_new(); const char *parsed_transport = NULL; smartlist_split_string(items, line, NULL, @@ -143,22 +145,22 @@ get_options_from_transport_options_line(const char *line,const char *transport) } /* add it to the options smartlist */ - smartlist_add_strdup(options, option); + smartlist_add_strdup(pt_options, option); log_debug(LD_CONFIG, "Added %s to the list of options", escaped(option)); } SMARTLIST_FOREACH_END(option); goto done; err: - SMARTLIST_FOREACH(options, char*, s, tor_free(s)); - smartlist_free(options); - options = NULL; + SMARTLIST_FOREACH(pt_options, char*, s, tor_free(s)); + smartlist_free(pt_options); + pt_options = NULL; done: SMARTLIST_FOREACH(items, char*, s, tor_free(s)); smartlist_free(items); - return options; + return pt_options; } /** Given the name of a pluggable transport in <b>transport</b>, check @@ -203,11 +205,6 @@ options_validate_server_transport(const or_options_t *old_options, config_line_t *cl; - for (cl = options->ServerTransportPlugin; cl; cl = cl->next) { - if (parse_transport_line(options, cl->value, 1, 1) < 0) - REJECT("Invalid server transport line. See logs for details."); - } - if (options->ServerTransportPlugin && !server_mode(options)) { log_notice(LD_GENERAL, "Tor is not configured as a relay but you specified" " a ServerTransportPlugin line (%s). The ServerTransportPlugin " @@ -215,6 +212,17 @@ options_validate_server_transport(const or_options_t *old_options, escaped(options->ServerTransportPlugin->value)); } + if (options->ServerTransportListenAddr && !options->ServerTransportPlugin) { + log_notice(LD_GENERAL, "You need at least a single managed-proxy to " + "specify a transport listen address. The " + "ServerTransportListenAddr line will be ignored."); + } + + for (cl = options->ServerTransportPlugin; cl; cl = cl->next) { + if (parse_transport_line(options, cl->value, 1, 1) < 0) + REJECT("Invalid server transport line. See logs for details."); + } + for (cl = options->ServerTransportListenAddr; cl; cl = cl->next) { /** If get_bindaddr_from_transport_listen_line() fails with 'transport' being NULL, it means that something went wrong @@ -225,12 +233,6 @@ options_validate_server_transport(const or_options_t *old_options, tor_free(bindaddr); } - if (options->ServerTransportListenAddr && !options->ServerTransportPlugin) { - log_notice(LD_GENERAL, "You need at least a single managed-proxy to " - "specify a transport listen address. The " - "ServerTransportListenAddr line will be ignored."); - } - for (cl = options->ServerTransportOptions; cl; cl = cl->next) { /** If get_options_from_transport_options_line() fails with 'transport' being NULL, it means that something went wrong @@ -268,7 +270,7 @@ options_act_server_transport(const or_options_t *old_options) /* If we are a bridge with a pluggable transport proxy but no Extended ORPort, inform the user that they are missing out. */ - if (server_mode(options) && options->ServerTransportPlugin && + if (options->ServerTransportPlugin && !options->ExtORPort_lines) { log_notice(LD_CONFIG, "We use pluggable transports but the Extended " "ORPort is disabled. Tor and your pluggable transports proxy " @@ -287,7 +289,7 @@ options_act_server_transport(const or_options_t *old_options) } if (!options->DisableNetwork) { - if (options->ServerTransportPlugin && server_mode(options)) { + if (options->ServerTransportPlugin) { for (cl = options->ServerTransportPlugin; cl; cl = cl->next) { if (parse_transport_line(options, cl->value, 0, 1) < 0) { // LCOV_EXCL_START |