|
@@ -86,8 +86,6 @@ static int connection_read_https_proxy_response(connection_t *conn);
|
|
|
static void connection_send_socks5_connect(connection_t *conn);
|
|
|
static const char *proxy_type_to_string(int proxy_type);
|
|
|
static int get_proxy_type(void);
|
|
|
-static int get_bridge_pt_addrport(tor_addr_t *addr, uint16_t *port,
|
|
|
- int *proxy_type, const connection_t *conn);
|
|
|
|
|
|
/** The last addresses that our network interface seemed to have been
|
|
|
* binding to. We use this as one way to detect when our IP changes.
|
|
@@ -4772,35 +4770,6 @@ assert_connection_ok(connection_t *conn, time_t now)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/** Fills <b>addr</b> and <b>port</b> with the details of the global
|
|
|
- * pluggable transport or bridge we are using.
|
|
|
- * <b>conn</b> contains the connection we are using the PT/bridge for.
|
|
|
- *
|
|
|
- * Return 0 on success, -1 on failure.
|
|
|
- */
|
|
|
-static int
|
|
|
-get_bridge_pt_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
|
|
|
- const connection_t *conn)
|
|
|
-{
|
|
|
- const or_options_t *options = get_options();
|
|
|
-
|
|
|
- if (options->ClientTransportPlugin || options->Bridges) {
|
|
|
- const transport_t *transport = NULL;
|
|
|
- int r;
|
|
|
- r = get_transport_by_bridge_addrport(&conn->addr, conn->port, &transport);
|
|
|
- if (r<0)
|
|
|
- return -1;
|
|
|
- if (transport) { /* transport found */
|
|
|
- tor_addr_copy(addr, &transport->addr);
|
|
|
- *port = transport->port;
|
|
|
- *proxy_type = transport->socks_version;
|
|
|
- return 0;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return -1;
|
|
|
-}
|
|
|
-
|
|
|
/** Fills <b>addr</b> and <b>port</b> with the details of the global
|
|
|
* proxy server we are using.
|
|
|
* <b>conn</b> contains the connection we are using the proxy for.
|
|
@@ -4819,8 +4788,19 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
|
|
|
* the config to have unused ClientTransportPlugin entries.
|
|
|
*/
|
|
|
if (options->ClientTransportPlugin) {
|
|
|
- if (get_bridge_pt_addrport(addr, port, proxy_type, conn) == 0)
|
|
|
+ const transport_t *transport = NULL;
|
|
|
+ int r;
|
|
|
+ r = get_transport_by_bridge_addrport(&conn->addr, conn->port, &transport);
|
|
|
+ if (r<0)
|
|
|
+ return -1;
|
|
|
+ if (transport) { /* transport found */
|
|
|
+ tor_addr_copy(addr, &transport->addr);
|
|
|
+ *port = transport->port;
|
|
|
+ *proxy_type = transport->socks_version;
|
|
|
return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* Unused ClientTransportPlugin. */
|
|
|
}
|
|
|
|
|
|
if (options->HTTPSProxy) {
|
|
@@ -4838,8 +4818,6 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
|
|
|
*port = options->Socks5ProxyPort;
|
|
|
*proxy_type = PROXY_SOCKS5;
|
|
|
return 0;
|
|
|
- } else if (options->Bridges) {
|
|
|
- return get_bridge_pt_addrport(addr, port, proxy_type, conn);
|
|
|
}
|
|
|
|
|
|
tor_addr_make_unspec(addr);
|