Optionally define PropVariantInit() locally to restore ability to build with
[u/mdw/putty] / proxy.c
diff --git a/proxy.c b/proxy.c
index 5baab7a..c6008a5 100644 (file)
--- a/proxy.c
+++ b/proxy.c
@@ -16,9 +16,7 @@
 
 #define do_proxy_dns(cfg) \
     (cfg->proxy_dns == FORCE_ON || \
-        (cfg->proxy_dns == AUTO && \
-              cfg->proxy_type != PROXY_SOCKS4 && \
-              cfg->proxy_type != PROXY_SOCKS5))
+        (cfg->proxy_dns == AUTO && cfg->proxy_type != PROXY_SOCKS4))
 
 /*
  * Call this when proxy negotiation is complete, so that this
@@ -191,6 +189,15 @@ static const char * sk_proxy_socket_error (Socket s)
 
 /* basic proxy plug functions */
 
+static void plug_proxy_log(Plug plug, int type, SockAddr addr, int port,
+                          const char *error_msg, int error_code)
+{
+    Proxy_Plug pp = (Proxy_Plug) plug;
+    Proxy_Socket ps = pp->proxy_socket;
+
+    plug_log(ps->plug, type, addr, port, error_msg, error_code);
+}
+
 static int plug_proxy_closing (Plug p, const char *error_msg,
                               int error_code, int calling_back)
 {
@@ -372,6 +379,7 @@ Socket new_connection(SockAddr addr, char *hostname,
     };
 
     static const struct plug_function_table plug_fn_table = {
+       plug_proxy_log,
        plug_proxy_closing,
        plug_proxy_receive,
        plug_proxy_sent,
@@ -1361,7 +1369,7 @@ char *format_telnet_command(SockAddr addr, int port, const Config *cfg)
                eo += 4;
            }
            else if (strnicmp(cfg->proxy_telnet_command + eo,
-                             "proxyhost", 4) == 0) {
+                             "proxyhost", 9) == 0) {
                int phlen = strlen(cfg->proxy_host);
                ENSURE(phlen);
                memcpy(ret+retlen, cfg->proxy_host, phlen);
@@ -1369,11 +1377,11 @@ char *format_telnet_command(SockAddr addr, int port, const Config *cfg)
                eo += 9;
            }
            else if (strnicmp(cfg->proxy_telnet_command + eo,
-                             "proxyport", 4) == 0) {
+                             "proxyport", 9) == 0) {
                 char pport[50];
                int pplen;
                 sprintf(pport, "%d", cfg->proxy_port);
-                pplen = strlen(cfg->proxy_host);
+                pplen = strlen(pport);
                ENSURE(pplen);
                memcpy(ret+retlen, pport, pplen);
                retlen += pplen;