diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | src/or/config.c | 3 | ||||
-rw-r--r-- | src/or/or.h | 18 | ||||
-rw-r--r-- | src/or/reasons.c | 2 |
4 files changed, 17 insertions, 9 deletions
@@ -2,6 +2,9 @@ Changes in version 0.2.2.1-alpha - 2009-0?-?? o Major features: - Add support for dynamic OpenSSL hardware crypto acceleration engines via new AccelName and AccelDir options. + - Tor now supports tunneling all of its outgoing connections over a SOCKS + proxy, using the SOCKS4Proxy and/or SOCKS5Proxy configuration options. + Code by Christopher Davis. o New options for gathering stats safely: - Directories that configure with --enable-dirreq-stats and set diff --git a/src/or/config.c b/src/or/config.c index c5a5b946fe..7944aa1001 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -3533,6 +3533,9 @@ options_validate(or_options_t *old_options, or_options_t *options, } } + if (options->Socks4Proxy && options->Socks5Proxy) + REJECT("You cannot specify both Socks4Proxy and SOCKS5Proxy"); + if (options->Socks5ProxyUsername) { size_t len; diff --git a/src/or/or.h b/src/or/or.h index df57f3048d..1aa40af61b 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -2392,15 +2392,15 @@ typedef struct { uint16_t HttpsProxyPort; /**< Parsed port for https proxy, if any. */ char *HttpsProxyAuthenticator; /**< username:password string, if any. */ - char *Socks4Proxy; - tor_addr_t Socks4ProxyAddr; - uint16_t Socks4ProxyPort; - - char *Socks5Proxy; - tor_addr_t Socks5ProxyAddr; - uint16_t Socks5ProxyPort; - char *Socks5ProxyUsername; - char *Socks5ProxyPassword; + char *Socks4Proxy; /**< hostname:port to use as a SOCKS4 proxy, if any. */ + tor_addr_t Socks4ProxyAddr; /**< Derived from Socks4Proxy. */ + uint16_t Socks4ProxyPort; /**< Derived from Socks4Proxy. */ + + char *Socks5Proxy; /**< hostname:port to use as a SOCKS5 proxy, if any. */ + tor_addr_t Socks5ProxyAddr; /**< Derived from Sock5Proxy. */ + uint16_t Socks5ProxyPort; /**< Derived from Socks5Proxy. */ + char *Socks5ProxyUsername; /**< Username for SOCKS5 authentication, if any */ + char *Socks5ProxyPassword; /**< Password for SOCKS5 authentication, if any */ /** List of configuration lines for replacement directory authorities. * If you just want to replace one class of authority at a time, diff --git a/src/or/reasons.c b/src/or/reasons.c index 78a16af10e..0544990679 100644 --- a/src/or/reasons.c +++ b/src/or/reasons.c @@ -326,6 +326,7 @@ circuit_end_reason_to_control_string(int reason) } } +/** Return a string corresponding to a SOCKS4 reponse code. */ const char * socks4_response_code_to_string(uint8_t code) { @@ -343,6 +344,7 @@ socks4_response_code_to_string(uint8_t code) } } +/** Return a string corresponding to a SOCKS5 reponse code. */ const char * socks5_response_code_to_string(uint8_t code) { |