mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
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.
This commit is contained in:
parent
41328c7009
commit
5cbf0f2106
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user