[tor-commits] [tor/master] Use fmt_and_decorate_addr in TransportProxy statefile entry.

nickm at torproject.org nickm at torproject.org
Thu Oct 11 02:32:44 UTC 2012


commit 5cbf0f2106e85fe69b6ce0d185d62755c2997220
Author: David Fifield <david at bamsoftware.com>
Date:   Sat Oct 6 21:03:24 2012 -0700

    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 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/or/statefile.c b/src/or/statefile.c
index 499572a..dd9d102 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);
   }





More information about the tor-commits mailing list