relay: Simplify relay/transport_config

Minor simplification and refactoring.

Part of 32113.
This commit is contained in:
teor 2019-10-31 12:28:07 +10:00
parent 2dfd18018f
commit 51ca6dea08

View File

@ -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