gloox
0.9.9.12
|
#include <connectionsocks5proxy.h>
Public Member Functions | |
ConnectionSOCKS5Proxy (ConnectionBase *connection, const LogSink &logInstance, const std::string &server, int port=-1, bool ip=false) | |
ConnectionSOCKS5Proxy (ConnectionDataHandler *cdh, ConnectionBase *connection, const LogSink &logInstance, const std::string &server, int port=-1, bool ip=false) | |
virtual | ~ConnectionSOCKS5Proxy () |
virtual ConnectionError | connect () |
virtual ConnectionError | recv (int timeout=-1) |
virtual bool | send (const std::string &data) |
virtual ConnectionError | receive () |
virtual void | disconnect () |
virtual void | cleanup () |
virtual void | getStatistics (int &totalIn, int &totalOut) |
virtual void | handleReceivedData (const ConnectionBase *connection, const std::string &data) |
virtual void | handleConnect (const ConnectionBase *connection) |
virtual void | handleDisconnect (const ConnectionBase *connection, ConnectionError reason) |
virtual ConnectionBase * | newInstance () const |
void | setServer (const std::string &host, int port=-1, bool ip=false) |
void | setProxyAuth (const std::string &user, const std::string &password) |
void | setConnectionImpl (ConnectionBase *connection) |
Public Member Functions inherited from ConnectionBase | |
ConnectionBase (ConnectionDataHandler *cdh) | |
virtual | ~ConnectionBase () |
ConnectionState | state () const |
void | registerConnectionDataHandler (ConnectionDataHandler *cdh) |
void | setServer (const std::string &server, int port=-1) |
const std::string & | server () const |
Public Member Functions inherited from ConnectionDataHandler | |
virtual | ~ConnectionDataHandler () |
This is an implementation of a simple SOCKS5 Proxying connection (RFC 1928 + RFC 1929).
To use with a SOCKS5 proxy:
Make sure to pass the proxy host/port to the transport connection (ConnectionTCP in this case), and the XMPP host/port to the proxy connection.
The reason why ConnectionSOCKS5Proxy doesn't manage its own ConnectionTCP is that it allows it to be used with other transports (like IPv6 or chained HTTP/SOCKS5 proxies).
Definition at line 53 of file connectionsocks5proxy.h.
ConnectionSOCKS5Proxy | ( | ConnectionBase * | connection, |
const LogSink & | logInstance, | ||
const std::string & | server, | ||
int | port = -1 , |
||
bool | ip = false |
||
) |
Constructs a new ConnectionSOCKS5Proxy object.
connection | A transport connection. It should be configured to connect to the proxy host and port, not to the (XMPP) host. ConnectionSOCKS5Proxy will own the transport connection and delete it in its destructor. |
logInstance | The log target. Obtain it from ClientBase::logInstance(). |
server | A server to connect to. This is the XMPP server's address, not the proxy. |
port | The proxy's port to connect to. This is the (XMPP) server's port, not the proxy's. The default of -1 means that SRV records will be used to find out about the actual host:port. |
ip | Indicates whether server is an IP address (true) or a host name (false). |
Definition at line 46 of file connectionsocks5proxy.cpp.
ConnectionSOCKS5Proxy | ( | ConnectionDataHandler * | cdh, |
ConnectionBase * | connection, | ||
const LogSink & | logInstance, | ||
const std::string & | server, | ||
int | port = -1 , |
||
bool | ip = false |
||
) |
Constructs a new ConnectionSOCKS5Proxy object.
cdh | A ConnectionDataHandler-derived object that will handle incoming data. |
connection | A transport connection. It should be configured to connect to the proxy host and port, not to the (XMPP) host. ConnectionSOCKS5Proxy will own the transport connection and delete it in its destructor. |
logInstance | The log target. Obtain it from ClientBase::logInstance(). |
server | A server to connect to. This is the XMPP server's address, not the proxy. |
port | The proxy's port to connect to. This is the (XMPP) server's port, not the proxy's. The default of -1 means that SRV records will be used to find out about the actual host:port. |
ip | Indicates whether server is an IP address (true) or a host name (false). |
Definition at line 58 of file connectionsocks5proxy.cpp.
|
virtual |
Virtual destructor
Definition at line 71 of file connectionsocks5proxy.cpp.
|
virtual |
This function is called after a disconnect to clean up internal state. It is also called by ConnectionBase's destructor.
Reimplemented from ConnectionBase.
Definition at line 143 of file connectionsocks5proxy.cpp.
|
virtual |
Used to initiate the connection.
Implements ConnectionBase.
Definition at line 91 of file connectionsocks5proxy.cpp.
|
virtual |
Disconnects an established connection. NOOP if no active connection exists.
Implements ConnectionBase.
Definition at line 103 of file connectionsocks5proxy.cpp.
|
virtual |
Returns current connection statistics.
totalIn | The total number of bytes received. |
totalOut | The total number of bytes sent. |
Implements ConnectionBase.
Definition at line 152 of file connectionsocks5proxy.cpp.
|
virtual |
This function is called when e.g. the raw TCP connection was established.
connection | The connection. |
Implements ConnectionDataHandler.
Definition at line 331 of file connectionsocks5proxy.cpp.
|
virtual |
This connection is called when e.g. the raw TCP connection was closed.
connection | The connection. |
reason | The reason for the disconnect. |
Implements ConnectionDataHandler.
Definition at line 371 of file connectionsocks5proxy.cpp.
|
virtual |
This function is called for received from the underlying transport.
connection | The connection that received the data. |
data | The data received. |
Implements ConnectionDataHandler.
Definition at line 163 of file connectionsocks5proxy.cpp.
|
virtual |
This function returns a new instance of the current ConnectionBase-derived object. The idea is to be able to 'clone' ConnectionBase-derived objects without knowing of what type they are exactly.
Implements ConnectionBase.
Definition at line 77 of file connectionsocks5proxy.cpp.
|
virtual |
Use this function to put the connection into 'receive mode', i.e. this function returns only when the connection is terminated.
Implements ConnectionBase.
Definition at line 118 of file connectionsocks5proxy.cpp.
|
virtual |
Use this periodically to receive data from the socket and to feed the parser.
timeout | The timeout to use for select in microseconds. Default of -1 means blocking. |
Implements ConnectionBase.
Definition at line 110 of file connectionsocks5proxy.cpp.
|
virtual |
Use this function to send a string of data over the wire. The function returns only after all data has been sent.
data | The data to send. |
Implements ConnectionBase.
Definition at line 126 of file connectionsocks5proxy.cpp.
void setConnectionImpl | ( | ConnectionBase * | connection | ) |
Sets the underlying transport connection. A possibly existing connection will be deleted.
connection | The ConnectionBase to replace the current connection, if any. |
Definition at line 83 of file connectionsocks5proxy.cpp.
|
inline |
Sets proxy authorization credentials.
user | The user name to use for proxy authorization. |
password | The password to use for proxy authorization. |
Definition at line 142 of file connectionsocks5proxy.h.
|
inline |
Sets the server to proxy to.
host | The server hostname (IP address). |
port | The server port. The default of -1 means that SRV records will be used to find out about the actual host:port. |
ip | Indicates whether host is an IP address (true) or a host name (false). |
Definition at line 134 of file connectionsocks5proxy.h.