Stop proxying connections to localhost by default; should fix
[u/mdw/putty] / proxy.c
diff --git a/proxy.c b/proxy.c
index 475dc4a..7c608c9 100644 (file)
--- a/proxy.c
+++ b/proxy.c
@@ -247,6 +247,14 @@ static int proxy_for_destination (SockAddr addr, char * hostname, int port)
     int hostip_len, hostname_len;
     char * exclude_list;
 
+    /*
+     * Check the host name and IP against the hard-coded
+     * representations of `localhost'.
+     */
+    if (!cfg.even_proxy_localhost &&
+       (sk_hostname_is_local(hostname) || sk_address_is_local(addr)))
+       return 0;                      /* do not proxy */
+
     /* we want a string representation of the IP address for comparisons */
     sk_getaddr(addr, hostip, 64);
 
@@ -404,13 +412,13 @@ Socket new_connection(SockAddr addr, char *hostname,
     return sk_new(addr, port, privport, oobinline, nodelay, plug);
 }
 
-Socket new_listener(int port, Plug plug, int local_host_only)
+Socket new_listener(char *srcaddr, int port, Plug plug, int local_host_only)
 {
     /* TODO: SOCKS (and potentially others) support inbound
      * TODO: connections via the proxy. support them.
      */
 
-    return sk_newlistener(port, plug, local_host_only);
+    return sk_newlistener(srcaddr, port, plug, local_host_only);
 }
 
 /* ----------------------------------------------------------------------