Browse Source

A changelog entry and a bit more documentation for socks-client

Nick Mathewson 14 years ago
parent
commit
c9203749a2
4 changed files with 17 additions and 9 deletions
  1. 3 0
      ChangeLog
  2. 3 0
      src/or/config.c
  3. 9 9
      src/or/or.h
  4. 2 0
      src/or/reasons.c

+ 3 - 0
ChangeLog

@@ -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

+ 3 - 0
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;
 

+ 9 - 9
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,

+ 2 - 0
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)
 {