This module implements a SOCKS version 5 client (see RFC 1928) for use with the Uq_engines.connector, Uq_engines.listener, and Uq_engines.datagram_provider engine factories.
This implementation supports IPv4 and IPv6.
Raised when error messages of the SOCKS proxy are received, or because of other SOCKS-related problems.
The object created by new proxy_client addr
can be passed as proxy
to the Uq_engines.connector, Uq_engines.listener, and
Uq_engines.datagram_provider functions to use
the SOCKS proxy for connections, servers, and datagram socket,
respectively.
The SOCKS client supports the following methods:
connect
: Only TCP connections are supported (UDP could be made
working - TODO)listen
: This works (only) for TCP sockets, toocreate_datagram_socket
: Creates unconnected datagram sockets that
can be sent and received with object methodsNote that socket addresses are resolved by the proxy host; this applies
to both `Sock_inet
and `Sock_inet_byname
. For the latter this means
that name resolution is done by the proxy.
The nature of SOCKS restricts the functionality:
`Sock_unix
addresses are not supported (i.e. you cannot connect
to a Unix domain socket on the proxy host)multiple_connections
is false
because of this.