From 5cbf0f2106e85fe69b6ce0d185d62755c2997220 Mon Sep 17 00:00:00 2001 From: David Fifield Date: Sat, 6 Oct 2012 21:03:24 -0700 Subject: [PATCH] Use fmt_and_decorate_addr in TransportProxy statefile entry. state_transport_line_is_valid calls tor_addr_port_lookup, which expects brackets around an IPv6 address. Without this, cached transport addresses can't be parsed later: [warn] state: Could not parse addrport. [warn] state: State file seems to be broken. See #7011. --- src/or/statefile.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/or/statefile.c b/src/or/statefile.c index 499572a071..dd9d10230f 100644 --- a/src/or/statefile.c +++ b/src/or/statefile.c @@ -553,7 +553,8 @@ save_transport_to_state(const char *transport, if (transport_line) { /* if transport already exists in state... */ const char *prev_bindaddr = /* get its addrport... */ get_transport_bindaddr(transport_line->value, transport); - tor_asprintf(&transport_addrport, "%s:%d", fmt_addr(addr), (int)port); + tor_asprintf(&transport_addrport, "%s:%d", fmt_and_decorate_addr(addr), + (int)port); /* if transport in state has the same address as this one, life is good */ if (!strcmp(prev_bindaddr, transport_addrport)) { @@ -566,7 +567,7 @@ save_transport_to_state(const char *transport, "address:port"); tor_free(transport_line->value); /* free the old line */ tor_asprintf(&transport_line->value, "%s %s:%d", transport, - fmt_addr(addr), + fmt_and_decorate_addr(addr), (int) port); /* replace old addrport line with new line */ } } else { /* never seen this one before; save it in state for next time */ @@ -585,7 +586,7 @@ save_transport_to_state(const char *transport, *next = line = tor_malloc_zero(sizeof(config_line_t)); line->key = tor_strdup("TransportProxy"); tor_asprintf(&line->value, "%s %s:%d", transport, - fmt_addr(addr), (int) port); + fmt_and_decorate_addr(addr), (int) port); next = &(line->next); }