19 #define SETTING_FASCIST_FIREWALL "FascistFirewall"
20 #define SETTING_REACHABLE_ADDRESSES "ReachableAddresses"
23 #define SETTING_PROXY_TYPE "ProxyType"
24 #define SETTING_PROXY_ADDRESS "ProxyAddress"
25 #define SETTING_PROXY_USERNAME "ProxyUsername"
26 #define SETTING_PROXY_PASSWORD "ProxyPassword"
29 #define SETTING_HTTPS_PROXY "HttpsProxy"
30 #define SETTING_HTTPS_PROXY_AUTH "HttpsProxyAuthenticator"
31 #define SETTING_SOCKS4_PROXY "Socks4Proxy"
32 #define SETTING_SOCKS5_PROXY "Socks5Proxy"
33 #define SETTING_SOCKS5_USERNAME "Socks5ProxyUsername"
34 #define SETTING_SOCKS5_PASSWORD "Socks5ProxyPassword"
36 #define SETTING_USE_BRIDGES "UseBridges"
37 #define SETTING_BRIDGE_LIST "Bridge"
38 #define SETTING_UPDATE_BRIDGES "UpdateBridgesFromAuthority"
39 #define SETTING_TUNNEL_DIR_CONNS "TunnelDirConns"
40 #define SETTING_PREFER_TUNNELED_DIR_CONNS "PreferTunneledDirConns"
56 QStringList() <<
"*:80" <<
"*:443");
65 QMultiHash<QString, QString> conf;
72 QString socks4, socks5, http, https;
73 QString addr, user, pass, auth;
79 if (!user.isEmpty() || !pass.isEmpty())
80 auth = QString(
"%1:%2").arg(user).arg(pass);
97 if (torVersion >= 0x020201) {
113 }
else if (torVersion <= 0x020021) {
120 if (torVersion >= 0x020003) {
126 foreach (QString bridge, bridges) {
159 QList<quint16> reachablePorts;
160 QStringList lineList;
164 foreach (QString line, lineList) {
165 foreach (QString address, line.split(
",", QString::SkipEmptyParts)) {
166 QStringList parts = address.split(
":");
167 if (parts.size() >= 2) {
168 quint16 port = parts.at(1).toUInt(&ok);
170 reachablePorts << port;
174 return reachablePorts;
182 if (!reachablePorts.isEmpty()) {
183 QStringList portList;
184 foreach (quint16 port, reachablePorts) {
185 portList <<
"*:" + QString::number(port);
317 QString str = type.toLower();
323 if (str ==
"httphttps")
void setProxyPassword(const QString &pass)
QStringList getBridgeList()
#define SETTING_USE_BRIDGES
QString getProxyUsername()
#define SETTING_PROXY_USERNAME
void setProxyAddress(const QString &addr)
ProxyType proxyTypeFromString(const QString &type)
#define SETTING_UPDATE_BRIDGES
void setReachablePorts(const QList< quint16 > &reachablePorts)
#define SETTING_PREFER_TUNNELED_DIR_CONNS
void setFascistFirewall(bool fascistFirewall)
QString getProxyPassword()
bool setConf(QHash< QString, QString > map, QString *errmsg=0)
virtual void setValue(const QString &key, const QVariant &value)
#define SETTING_SOCKS5_PROXY
#define SETTING_SOCKS5_USERNAME
#define SETTING_FASCIST_FIREWALL
QString proxyTypeToString(ProxyType type)
virtual QVariant localValue(const QString &key) const
void setBridgeList(const QStringList &bridgeList)
#define SETTING_HTTPS_PROXY_AUTH
void setProxyType(ProxyType type)
NetworkSettings(TorControl *torControl)
#define SETTING_HTTPS_PROXY
void setProxyUsername(const QString &user)
#define SETTING_SOCKS4_PROXY
#define SETTING_PROXY_ADDRESS
TorControl * torControl() const
#define SETTING_BRIDGE_LIST
virtual QVariant value(const QString &key) const
#define SETTING_REACHABLE_ADDRESSES
#define SETTING_TUNNEL_DIR_CONNS
QString getProxyAddress()
#define SETTING_PROXY_TYPE
#define SETTING_PROXY_PASSWORD
bool getFascistFirewall()
void setDefault(const QString &key, const QVariant &val)
#define SETTING_SOCKS5_PASSWORD
QList< quint16 > getReachablePorts()
void setUseBridges(bool useBridges)
bool apply(QString *errmsg=0)