diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-07-12 08:59:23 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-07-12 08:59:23 -0400 |
commit | a7ec493d88bfdd2735ee50893dfa890e60900e2b (patch) | |
tree | 13ef463f8285f11f2d63e2a0b2a2dcaf96e56545 | |
parent | 66074ad1e21cfe6c98a70b279ed690e357d1c41c (diff) | |
parent | abeb07a1bff4f68a3143bb47a6123c0fef83ff79 (diff) | |
download | tor-a7ec493d88bfdd2735ee50893dfa890e60900e2b.tar.gz tor-a7ec493d88bfdd2735ee50893dfa890e60900e2b.zip |
Merge remote-tracking branch 'imnotbad/bug26663'
-rw-r--r-- | changes/ticket26663 | 3 | ||||
-rw-r--r-- | src/app/config/config.c | 2 | ||||
-rw-r--r-- | src/app/config/confparse.c | 2 | ||||
-rw-r--r-- | src/test/test_config.c | 14 |
4 files changed, 19 insertions, 2 deletions
diff --git a/changes/ticket26663 b/changes/ticket26663 new file mode 100644 index 0000000000..6424bddc63 --- /dev/null +++ b/changes/ticket26663 @@ -0,0 +1,3 @@ + o Minor features(config): + - Parsing of "auto" keyword in torrc is now case insensitive. + Fixes bug 26663; bugfix on 0.3.5.0-alpha diff --git a/src/app/config/config.c b/src/app/config/config.c index 74aa64dede..1f4f099be7 100644 --- a/src/app/config/config.c +++ b/src/app/config/config.c @@ -7001,7 +7001,7 @@ parse_port_config(smartlist_t *out, port = 0; else port = 1; - } else if (!strcmp(addrport, "auto")) { + } else if (!strcasecmp(addrport, "auto")) { port = CFG_AUTO_PORT; int af = tor_addr_parse(&addr, defaultaddr); tor_assert(af >= 0); diff --git a/src/app/config/confparse.c b/src/app/config/confparse.c index 5b7f54bc65..6fa4fd1ea8 100644 --- a/src/app/config/confparse.c +++ b/src/app/config/confparse.c @@ -267,7 +267,7 @@ config_assign_value(const config_format_t *fmt, void *options, break; case CONFIG_TYPE_AUTOBOOL: - if (!strcmp(c->value, "auto")) + if (!strcasecmp(c->value, "auto")) *(int *)lvalue = -1; else if (!strcmp(c->value, "0")) *(int *)lvalue = 0; diff --git a/src/test/test_config.c b/src/test/test_config.c index 393378b4c8..f5c759402c 100644 --- a/src/test/test_config.c +++ b/src/test/test_config.c @@ -4637,6 +4637,20 @@ test_config_parse_port_config__ports__ports_given(void *data) tor_addr_parse(&addr, "127.0.0.46"); tt_assert(tor_addr_eq(&port_cfg->addr, &addr)) + // Test success with a port of auto in mixed case + config_free_lines(config_port_valid); config_port_valid = NULL; + SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); + smartlist_clear(slout); + config_port_valid = mock_config_line("DNSPort", "AuTo"); + ret = parse_port_config(slout, config_port_valid, "DNS", 0, + "127.0.0.46", 0, 0); + tt_int_op(ret, OP_EQ, 0); + tt_int_op(smartlist_len(slout), OP_EQ, 1); + port_cfg = (port_cfg_t *)smartlist_get(slout, 0); + tt_int_op(port_cfg->port, OP_EQ, CFG_AUTO_PORT); + tor_addr_parse(&addr, "127.0.0.46"); + tt_assert(tor_addr_eq(&port_cfg->addr, &addr)) + // Test success with parsing both an address and an auto port config_free_lines(config_port_valid); config_port_valid = NULL; SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf)); |