mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
sshproxy.c: remember to call prepare_session().
prepare_session() is the function that takes a Conf in the form it was loaded from the configuration, and normalises it into the form that backends can make sense of easily. In particular, if CONF_host contains something like "user@hostname", this is the place where the "user@" is stripped off the hostname field and moved into CONF_username where the backend will expect to find it. Therefore, you're _always_ supposed to call prepare_session() before launching a backend from a Conf you (potentially) got from a saved session. But the SSH proxy code forgot to. As a result, if you had a saved session with "user@hostname" in the hostname field, it would work fine to launch that session directly in PuTTY, but trying to use the same saved session as an SSH proxy would fail mysteriously after trying to pass "user@hostname" to getaddrinfo() and getting nothing useful back. (On Windows, the error message is especially opaque: an invalid string of that kind generates an error code that we weren't even tranlsating. And even if we _do_ translate it, it wouldn't be very meaningful, because the error in question is WSANO_RECOVERY, which FormatMessage renders as "A non-recoverable error occurred during a database lookup." I guess the error in question was that Windows couldn't even figure out how to translate that string into the format of a DNS request message!)
This commit is contained in:
parent
38a5f59c75
commit
1cf4f50981
@ -643,6 +643,12 @@ Socket *sshproxy_new_connection(SockAddr *addr, const char *hostname,
|
||||
conf_set_str(sp->conf, CONF_ssh_nc_host, hostname);
|
||||
conf_set_int(sp->conf, CONF_ssh_nc_port, port);
|
||||
|
||||
/*
|
||||
* Do the usual normalisation of things in the Conf like a "user@"
|
||||
* prefix on the hostname field.
|
||||
*/
|
||||
prepare_session(sp->conf);
|
||||
|
||||
sp->logctx = log_init(&sp->logpolicy, sp->conf);
|
||||
|
||||
char *error, *realhost;
|
||||
|
Loading…
Reference in New Issue
Block a user