1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-01 11:32:48 -05:00

Support for doing DNS at the proxy end. I've invented a new type of

SockAddr, which just contains an unresolved hostname and is created
by a stub function in *net.c. It's an error to pass this to most of
the real-meat functions in *net.c; these fake addresses should have
been dealt with by the time they get down that far. proxy.c now
contains name_lookup(), a wrapper on sk_namelookup() which decides
whether or not to do real DNS, and the individual proxy
implementations each deal sensibly with being handed an unresolved
address and avoid ever passing one down to *net.c.

[originally from svn r2353]
This commit is contained in:
Simon Tatham
2002-12-18 16:23:11 +00:00
parent e1cc16e6be
commit a564ad3140
14 changed files with 227 additions and 65 deletions

View File

@ -1,4 +1,4 @@
\versionid $Id: config.but,v 1.46 2002/12/18 12:18:54 simon Exp $
\versionid $Id: config.but,v 1.47 2002/12/18 16:23:10 simon Exp $
\C{config} Configuring PuTTY
@ -1445,6 +1445,43 @@ list does not explicitly contain them. It is very unlikely that this
behaviour would ever cause problems, but if it does you can change
it by enabling \q{Consider proxying local host connections}.
Note that if you are doing DNS at the proxy (see
\k{config-proxy-dns}), you should make sure that your proxy
exclusion settings do not depend on knowing the IP address of a
host. If the name is passed on to the proxy without PuTTY looking it
up, it will never know the IP address and cannot check it against
your list.
\S{config-proxy-dns} Name resolution when using a proxy
\cfg{winhelp-topic}{proxy.dns}
If you are using a proxy to access a private network, it can make a
difference whether DNS name resolution is performed by PuTTY itself
(on the client machine) or performed by the proxy.
The \q{Do DNS name lookup at proxy end} configuration option allows
you to control this. If you set it to \q{No}, PuTTY will always do
its own DNS, and will always pass an IP address to the proxy. If you
set it to \q{Yes}, PuTTY will always pass host names straight to the
proxy without trying to look them up first.
If you set this option to \q{Auto} (the default), PuTTY will do
something it considers appropriate for each type of proxy. Telnet
and HTTP proxies will have host names passed straight to them; SOCKS
proxies will not.
Note that if you are doing DNS at the proxy, you should make sure
that your proxy exclusion settings (see \k{config-proxy-exclude}) do
not depend on knowing the IP address of a host. If the name is
passed on to the proxy without PuTTY looking it up, it will never
know the IP address and cannot check it against your list.
The original SOCKS 4 protocol does not support proxy-side DNS. There
is a protocol extension (SOCKS 4A) which does support it, but not
all SOCKS 4 servers provide this extension. If you enable proxy DNS
and your SOCKS 4 server cannot deal with it, this might be why.
\S{config-proxy-auth} Username and password
\cfg{winhelp-topic}{proxy.auth}