24 #include <net/address.h>
25 #include <net/addressresolver.h>
26 #include <ktorrent_export.h>
27 #include <mse/encryptedpacketsocket.h>
36 class KTORRENT_EXPORT Socks :
public QObject
53 USERNAME_AND_PASSWORD_SENT,
56 Socks(mse::EncryptedPacketSocket::Ptr sock,
const Address & dest);
66 State onReadyToWrite();
72 State onReadyToRead();
75 static bool enabled() {
return socks_enabled;}
78 static void setSocksEnabled(
bool on) {socks_enabled = on;}
81 static void setSocksServerAddress(
const QString & host,bt::Uint16 port);
84 static void setSocksVersion(
int version) {socks_version = version;}
91 static void setSocksAuthentication(
const QString & username,
const QString & password);
94 State sendAuthRequest();
95 void sendConnectRequest();
96 void sendUsernamePassword();
97 State handleAuthReply();
98 State handleUsernamePasswordReply();
99 State handleConnectReply();
105 mse::EncryptedPacketSocket::Ptr sock;
108 SetupState internal_state;
112 static bool socks_server_addr_resolved;
113 static QString socks_server_host;
114 static bt::Uint16 socks_server_port;
115 static bool socks_enabled;
116 static int socks_version;
117 static QString socks_username;
118 static QString socks_password;