1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 17:38:00 +00:00

Make SSH proxying conditional on CONF_proxy_type!

In commit 0d3bb73608, I introduced the new SSH / jump-host proxy
type, which should be invoked by proxy.c when CONF_proxy_type is set
to PROXY_SSH. In fact, I left out the check, so it's invoked by
proxy.c _unconditionally_, after the check to see whether proxying is
required at all. So any saved session configured with any other proxy
type (other than PROXY_NONE) would be treated as PROXY_SSH by mistake.

How embarrassing. I did remember at one point that I needed to fix
this, but it fell out of my head before I pushed!
This commit is contained in:
Simon Tatham 2021-05-24 13:52:51 +01:00
parent d008d235f3
commit 415927e9b0

View File

@ -395,7 +395,9 @@ Socket *new_connection(SockAddr *addr, const char *hostname,
bool oobinline, bool nodelay, bool keepalive,
Plug *plug, Conf *conf)
{
if (conf_get_int(conf, CONF_proxy_type) != PROXY_NONE &&
int type = conf_get_int(conf, CONF_proxy_type);
if (type != PROXY_NONE &&
proxy_for_destination(addr, hostname, port, conf))
{
ProxySocket *ret;
@ -403,9 +405,9 @@ Socket *new_connection(SockAddr *addr, const char *hostname,
char *proxy_canonical_name;
const char *proxy_type;
Socket *sret;
int type;
if ((sret = sshproxy_new_connection(addr, hostname, port, privport,
if (type == PROXY_SSH &&
(sret = sshproxy_new_connection(addr, hostname, port, privport,
oobinline, nodelay, keepalive,
plug, conf)) != NULL)
return sret;
@ -435,7 +437,6 @@ Socket *new_connection(SockAddr *addr, const char *hostname,
ret->state = PROXY_STATE_NEW;
ret->negotiate = NULL;
type = conf_get_int(conf, CONF_proxy_type);
if (type == PROXY_HTTP) {
ret->negotiate = proxy_http_negotiate;
proxy_type = "HTTP";