]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Write transport ARGS to extra-info descriptor.
authorGeorge Kadianakis <desnacked@riseup.net>
Tue, 2 Jul 2013 16:33:55 +0000 (19:33 +0300)
committerNick Mathewson <nickm@torproject.org>
Thu, 18 Jul 2013 12:43:52 +0000 (08:43 -0400)
src/or/transports.c

index d1c34b5854ae5ae6544218dbf58da451025c2f9d..91234210b2f80ac1017fbcf941b6c0f1723db982 100644 (file)
@@ -1404,6 +1404,8 @@ pt_get_extra_info_descriptor_string(void)
     tor_assert(mp->transports);
 
     SMARTLIST_FOREACH_BEGIN(mp->transports, const transport_t *, t) {
+      char *transport_args = NULL;
+
       /* If the transport proxy returned "0.0.0.0" as its address, and
        * we know our external IP address, use it. Otherwise, use the
        * returned address. */
@@ -1419,9 +1421,16 @@ pt_get_extra_info_descriptor_string(void)
         addrport = fmt_addrport(&t->addr, t->port);
       }
 
+      /* If this transport has any arguments with it, prepend a space
+         to them so that we can add them to the transport line. */
+      if (t->extra_info_args)
+        tor_asprintf(&transport_args, " %s", t->extra_info_args);
+
       smartlist_add_asprintf(string_chunks,
-                             "transport %s %s",
-                             t->name, addrport);
+                             "transport %s %s%s",
+                             t->name, addrport,
+                             transport_args ? transport_args : "");
+      tor_free(transport_args);
     } SMARTLIST_FOREACH_END(t);
 
   } SMARTLIST_FOREACH_END(mp);