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)
virtual QVariant value(const QString &key) const
#define SETTING_UPDATE_BRIDGES
void setReachablePorts(const QList< quint16 > &reachablePorts)
#define SETTING_PREFER_TUNNELED_DIR_CONNS
void setFascistFirewall(bool fascistFirewall)
QString getProxyPassword()
TorControl * torControl() const
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)
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
#define SETTING_BRIDGE_LIST
#define SETTING_REACHABLE_ADDRESSES
#define SETTING_TUNNEL_DIR_CONNS
QString getProxyAddress()
#define SETTING_PROXY_TYPE
virtual QVariant localValue(const QString &key) const
#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)