From: David Goulet Date: Tue, 11 Jun 2024 16:38:56 +0000 (-0400) Subject: bridge: Always put transport-info line X-Git-Tag: tor-0.4.8.13~6^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d587ba01a70b81e8c15f6e53e72c133ebe977719;p=thirdparty%2Ftor.git bridge: Always put transport-info line Signed-off-by: David Goulet --- diff --git a/src/feature/client/transports.c b/src/feature/client/transports.c index 403bedc183..878675ac4d 100644 --- a/src/feature/client/transports.c +++ b/src/feature/client/transports.c @@ -1798,20 +1798,21 @@ pt_get_extra_info_descriptor_string(void) /* Set transport-info line. */ { - char *transport_info_args = NULL; + char *version = NULL; + char *impl = NULL; if (mp->version) { - tor_asprintf(&transport_info_args, " version=%s", mp->version); + tor_asprintf(&version, " version=%s", mp->version); } if (mp->implementation) { - tor_asprintf(&transport_info_args, " implementation=%s", - mp->implementation); - } - if (transport_info_args) { - smartlist_add_asprintf(string_chunks, "transport-info%s", - transport_info_args ? transport_info_args : ""); - tor_free(transport_info_args); + tor_asprintf(&impl, " implementation=%s", mp->implementation); } + /* Always put in the line even if empty. Else, we don't know to which + * transport this applies to. */ + smartlist_add_asprintf(string_chunks, "transport-info%s%s", + version ? version: "", impl ? impl: ""); + tor_free(version); + tor_free(impl); } } SMARTLIST_FOREACH_END(mp); diff --git a/src/test/test_pt.c b/src/test/test_pt.c index 62519a235f..10bf7829d1 100644 --- a/src/test/test_pt.c +++ b/src/test/test_pt.c @@ -413,7 +413,9 @@ test_pt_get_extrainfo_string(void *arg) tt_assert(s); tt_str_op(s, OP_EQ, "transport hagbard 127.0.0.1:5555\n" - "transport celine 127.0.0.1:1723 card=no-enemy\n"); + "transport-info\n" + "transport celine 127.0.0.1:1723 card=no-enemy\n" + "transport-info\n"); done: /* XXXX clean up better */