]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
When a proxy negotiation function is called with PROXY_CHANGE_NEW, it
authorSimon Tatham <anakin@pobox.com>
Tue, 16 Oct 2012 20:15:52 +0000 (20:15 +0000)
committerSimon Tatham <anakin@pobox.com>
Tue, 16 Oct 2012 20:15:52 +0000 (20:15 +0000)
should not call plug functions, because it's being called from within
new_connection(), and the state on which the plug functions depend
will not have been set up until new_connection() returns success.
Instead, we set the error string in the Proxy_Socket, which will cause
the same error message to be returned as a failure of new_connection().

[originally from svn r9689]

proxy.c

diff --git a/proxy.c b/proxy.c
index 3c81884ded95d97aca4a0173c76816642df05116..bb89a176ae80f3b523fea6ea72b910e2632c30eb 100644 (file)
--- a/proxy.c
+++ b/proxy.c
@@ -750,8 +750,7 @@ int proxy_socks4_negotiate (Proxy_Socket p, int change)
 
        type = sk_addrtype(p->remote_addr);
        if (type == ADDRTYPE_IPV6) {
-           plug_closing(p->plug, "Proxy error: SOCKS version 4 does"
-                        " not support IPv6", PROXY_ERROR_GENERAL, 0);
+            p->error = "Proxy error: SOCKS version 4 does not support IPv6";
            return 1;
        } else if (type == ADDRTYPE_IPV4) {
            namelen = 0;