浏览代码

Add a warning for using HTTPProxy with no other proxy.

From what I can tell, this configuration is usually a mistake, and
leads people to think that all their traffic is getting proxied when
in fact practically none of it is.  Resolves the issue behind "bug"
4663.
Nick Mathewson 13 年之前
父节点
当前提交
f4fccee4d2
共有 2 个文件被更改,包括 14 次插入0 次删除
  1. 5 0
      changes/bug4663
  2. 9 0
      src/or/config.c

+ 5 - 0
changes/bug4663

@@ -0,0 +1,5 @@
+  o Minor features:
+    - Warn the user when HTTPProxy, but no other proxy type, is
+      configured. This can cause surprising behavior: it doesn't send
+      all of Tor's traffic over the HTTPProxy--it sends unencrypted
+      directory traffic only. Resolves ticket 4663.

+ 9 - 0
src/or/config.c

@@ -3889,6 +3889,15 @@ options_validate(or_options_t *old_options, or_options_t *options,
     REJECT("You have configured more than one proxy type. "
     REJECT("You have configured more than one proxy type. "
            "(Socks4Proxy|Socks5Proxy|HTTPSProxy|ClientTransportPlugin)");
            "(Socks4Proxy|Socks5Proxy|HTTPSProxy|ClientTransportPlugin)");
 
 
+  /* Check if the proxies will give surprising behavior. */
+  if (options->HTTPProxy && !(options->Socks4Proxy ||
+                              options->Socks5Proxy ||
+                              options->HTTPSProxy)) {
+    log_warn(LD_CONFIG, "HTTPProxy configured, but no SOCKS proxy or "
+             "HTTPS proxy configured. Watch out: this configuration will "
+             "proxy unencrypted directory connections only.");
+  }
+
   if (options->Socks5ProxyUsername) {
   if (options->Socks5ProxyUsername) {
     size_t len;
     size_t len;