Expand description
Implement a simple SOCKS proxy that relays connections over Tor.
A proxy is launched with run_socks_proxy()
, which listens for new
connections and then runs
Modules§
- socks_
and_ 🔒rpc rpc
- NOTE: The following documentation belongs in a spec. But for now, it’s our best attempt to document the design and protocol implemented here for integrating SOCKS with our RPC system. –nickm
Structs§
- Auth
Interpretation 🔒 - The meaning of a SOCKS authentication field, according to our conventions.
- Socks
Conn 🔒Context - Information used to implement a SOCKS connection.
- Socks
Isolation 🔒Key - A Key used to isolate connections.
Enums§
- Provided
Isolation 🔒 - Isolation information provided through the socks connection
Constants§
- WRONG_
PROTOCOL_ 🔒PAYLOAD - Payload to return when an HTTP connection arrive on a Socks port
Functions§
- accept_
err_ 🔒is_ fatal - Return true if a given IoError, when received from accept, is a fatal error.
- copy_
interactive 🔒 - Copy all the data from
reader
intowriter
until we encounter an EOF or an error. - handle_
socks_ 🔒conn - Given a just-received TCP connection
S
on a SOCKS port, handle the SOCKS handshake and relay the connection over the Tor network. - interpret_
socks_ 🔒auth - Given the authentication object from a socks connection, determine what it’s telling us to do.
- reply_
error 🔒 - Reply a Socks error based on an arti-client Error and close the stream. Returns the error provided in parameter
- run_
socks_ proxy - Launch a SOCKS proxy to listen on a given localhost port, and run indefinitely.
- stream_
preference - Find out which kind of address family we can/should use for a
given
SocksRequest
. - write_
all_ 🔒and_ close - write_all the data to the writer & close the writer if write_all is successful.
- write_
all_ 🔒and_ flush - write_all the data to the writer & flush the writer if write_all is successful.
Type Aliases§
- Conn
Isolation 🔒 - Type alias for the isolation information associated with a given SOCKS connection before SOCKS is negotiated.