| Index: net/socket/socks5_client_socket.h
|
| ===================================================================
|
| --- net/socket/socks5_client_socket.h (revision 34903)
|
| +++ net/socket/socks5_client_socket.h (working copy)
|
| @@ -32,23 +32,11 @@
|
| // |req_info| contains the hostname and port to which the socket above will
|
| // communicate to via the SOCKS layer.
|
| //
|
| - // SOCKS5 supports three modes of specifying connection endpoints:
|
| - // (1) as an IPv4 address.
|
| - // (2) as an IPv6 address.
|
| - // (3) as a hostname string.
|
| - //
|
| - // To select mode (3), pass NULL for |host_resolver|.
|
| - //
|
| - // Otherwise if a non-NULL |host_resolver| is given, Connect() will first
|
| - // try to resolve the hostname using |host_resolver|, and pass that
|
| - // resolved address to the proxy server. If the resolve failed, Connect()
|
| - // will fall-back to mode (3) and simply send the unresolved hosname string
|
| - // to the SOCKS v5 proxy server.
|
| - //
|
| - // Passing NULL for |host_resolver| is the recommended default.
|
| + // Although SOCKS 5 supports 3 different modes of addressing, we will
|
| + // always pass it a hostname. This means the DNS resolving is done
|
| + // proxy side.
|
| SOCKS5ClientSocket(ClientSocket* transport_socket,
|
| - const HostResolver::RequestInfo& req_info,
|
| - HostResolver* host_resolver);
|
| + const HostResolver::RequestInfo& req_info);
|
|
|
| // On destruction Disconnect() is called.
|
| virtual ~SOCKS5ClientSocket();
|
| @@ -73,13 +61,7 @@
|
| #endif
|
|
|
| private:
|
| - FRIEND_TEST(SOCKS5ClientSocketTest, IPv6Domain);
|
| - FRIEND_TEST(SOCKS5ClientSocketTest, FailedDNS);
|
| - FRIEND_TEST(SOCKS5ClientSocketTest, CompleteHandshake);
|
| -
|
| enum State {
|
| - STATE_RESOLVE_HOST,
|
| - STATE_RESOLVE_HOST_COMPLETE,
|
| STATE_GREET_WRITE,
|
| STATE_GREET_WRITE_COMPLETE,
|
| STATE_GREET_READ,
|
| @@ -91,12 +73,9 @@
|
| STATE_NONE,
|
| };
|
|
|
| - // State of the SOCKSv5 handshake. Before host resolution all connections
|
| - // are kEndPointFailedDomain. If DNS lookup fails, we move to
|
| - // kEndPointFailedDomain, otherwise the IPv4/IPv6 address as resolved.
|
| + // Addressing type that can be specified in requests or responses.
|
| enum SocksEndPointAddressType {
|
| - kEndPointUnresolved,
|
| - kEndPointFailedDomain = 0x03,
|
| + kEndPointDomain = 0x03,
|
| kEndPointResolvedIPv4 = 0x01,
|
| kEndPointResolvedIPv6 = 0x04,
|
| };
|
| @@ -112,8 +91,6 @@
|
| void OnIOComplete(int result);
|
|
|
| int DoLoop(int last_io_result);
|
| - int DoResolveHost();
|
| - int DoResolveHostComplete(int result);
|
| int DoHandshakeRead();
|
| int DoHandshakeReadComplete(int result);
|
| int DoHandshakeWrite();
|
| @@ -133,7 +110,6 @@
|
| scoped_ptr<ClientSocket> transport_;
|
|
|
| State next_state_;
|
| - SocksEndPointAddressType address_type_;
|
|
|
| // Stores the callback to the layer above, called on completing Connect().
|
| CompletionCallback* user_callback_;
|
| @@ -157,11 +133,6 @@
|
|
|
| size_t read_header_size;
|
|
|
| - // If non-NULL, we will use this host resolver to resolve DNS client-side
|
| - // (and fall back to proxy-side resolving if it fails).
|
| - // Otherwise, we will do proxy-side DNS resolving.
|
| - scoped_ptr<SingleRequestHostResolver> host_resolver_;
|
| - AddressList addresses_;
|
| HostResolver::RequestInfo host_request_info_;
|
|
|
| scoped_refptr<LoadLog> load_log_;
|
|
|