From: Nick Mathewson Date: Fri, 7 Feb 2014 15:38:24 +0000 (-0500) Subject: Merge remote-tracking branch 'origin/maint-0.2.4' X-Git-Tag: tor-0.2.5.2-alpha~21 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=372adfa09a143490dfc058a6e2db78ca27ef9399;p=thirdparty%2Ftor.git Merge remote-tracking branch 'origin/maint-0.2.4' --- 372adfa09a143490dfc058a6e2db78ca27ef9399 diff --cc src/or/channeltls.c index 9a290778f5,495f856227..e76bae3da2 --- a/src/or/channeltls.c +++ b/src/or/channeltls.c @@@ -401,37 -399,15 +402,39 @@@ channel_tls_get_remote_addr_method(chan tor_assert(tlschan); tor_assert(addr_out); - tor_assert(tlschan->conn); - tor_addr_copy(addr_out, &(TO_CONN(tlschan->conn)->addr)); + if (tlschan->conn) { + tor_addr_copy(addr_out, &(TO_CONN(tlschan->conn)->addr)); + rv = 1; + } else tor_addr_make_unspec(addr_out); - return 1; + return rv; } +/** + * Get the name of the pluggable transport used by a channel_tls_t. + * + * This implements the get_transport_name for channel_tls_t. If the + * channel uses a pluggable transport, copy its name to + * transport_out and return 0. If the channel did not use a + * pluggable transport, return -1. */ + +static int +channel_tls_get_transport_name_method(channel_t *chan, char **transport_out) +{ + channel_tls_t *tlschan = BASE_CHAN_TO_TLS(chan); + + tor_assert(tlschan); + tor_assert(transport_out); + tor_assert(tlschan->conn); + + if (!tlschan->conn->ext_or_transport) + return -1; + + *transport_out = tor_strdup(tlschan->conn->ext_or_transport); + return 0; +} + /** * Get endpoint description of a channel_tls_t *