[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r1986: Make NetworkSettings inherit AbstractTorSettings and teach i (in trunk: . src/config)
Author: edmanm
Date: 2007-10-09 23:39:19 -0400 (Tue, 09 Oct 2007)
New Revision: 1986
Modified:
trunk/
trunk/src/config/networksettings.cpp
trunk/src/config/networksettings.h
Log:
r2018@lysithea: edmanm | 2007-10-09 23:28:25 -0400
Make NetworkSettings inherit AbstractTorSettings and teach it to apply our
network settings to Tor.
Property changes on: trunk
___________________________________________________________________
svk:merge ticket from /local/vidalia/trunk [r2018] on dc66be73-d13e-47ba-a267-8dc7cda68c65
Modified: trunk/src/config/networksettings.cpp
===================================================================
--- trunk/src/config/networksettings.cpp 2007-10-10 03:38:52 UTC (rev 1985)
+++ trunk/src/config/networksettings.cpp 2007-10-10 03:39:19 UTC (rev 1986)
@@ -40,10 +40,9 @@
/** Default constructor */
-NetworkSettings::NetworkSettings()
+NetworkSettings::NetworkSettings(TorControl *torControl)
+: AbstractTorSettings("Network", torControl)
{
- beginGroup("Network");
-
setDefault(SETTING_USE_HTTP_PROXY, false);
setDefault(SETTING_HTTP_PROXY, "");
setDefault(SETTING_HTTP_PROXY_AUTH, "");
@@ -53,16 +52,45 @@
setDefault(SETTING_USE_BRIDGES, false);
setDefault(SETTING_BRIDGE_LIST, QStringList());
setDefault(SETTING_FASCIST_FIREWALL, false);
- setDefault(SETTING_REACHABLE_ADDRESSES,
- QStringList() << "*:80" << "*:443");
+ setDefault(SETTING_REACHABLE_ADDRESSES, QStringList());
}
+/** Applies the current network configuration settings to Tor. If
+ * <b>errmsg</b> is specified and an error occurs while applying the settings,
+ * it will be set to a string describing the error. */
+bool
+NetworkSettings::apply(QString *errmsg)
+{
+ QHash<QString, QString> conf;
+
+ conf.insert(SETTING_REACHABLE_ADDRESSES,
+ (getFascistFirewall() ?
+ localValue(SETTING_REACHABLE_ADDRESSES).toStringList().join(",") : ""));
+
+ conf.insert(SETTING_HTTP_PROXY,
+ (getUseHttpProxy() ? localValue(SETTING_HTTP_PROXY).toString() : ""));
+ conf.insert(SETTING_HTTP_PROXY_AUTH,
+ localValue(SETTING_HTTP_PROXY_AUTH).toString());
+
+ conf.insert(SETTING_HTTPS_PROXY,
+ (getUseHttpsProxy() ? localValue(SETTING_HTTPS_PROXY).toString() : ""));
+ conf.insert(SETTING_HTTPS_PROXY_AUTH,
+ localValue(SETTING_HTTPS_PROXY_AUTH).toString());
+
+ conf.insert(SETTING_BRIDGE_LIST,
+ (getUseBridges() ?
+ localValue(SETTING_BRIDGE_LIST).toStringList().join(",") : ""));
+ conf.insert("UpdateBridgesFromAuthority", (getUseBridges() ? "1" : "0"));
+
+ return _torControl->setConf(conf, errmsg);
+}
+
/** Returns true if we need to set ReachableAddresses because we're behind a
* restrictive firewall that limits the ports Tor can connect to. */
bool
NetworkSettings::getFascistFirewall()
{
- return value(SETTING_FASCIST_FIREWALL).toBool();
+ return localValue(SETTING_FASCIST_FIREWALL).toBool();
}
/** Sets to <b>fascistFirewall</b> whether Tor should only create outgoing
@@ -111,7 +139,7 @@
bool
NetworkSettings::getUseHttpProxy()
{
- return value(SETTING_USE_HTTP_PROXY).toBool();
+ return localValue(SETTING_USE_HTTP_PROXY).toBool();
}
/** Sets to <b>useHttpProxy</b> whether Tor should make all its directory
@@ -162,7 +190,7 @@
bool
NetworkSettings::getUseHttpsProxy()
{
- return value(SETTING_USE_HTTPS_PROXY).toBool();
+ return localValue(SETTING_USE_HTTPS_PROXY).toBool();
}
/** Sets to <b>useHttpsProxy</b> whether Tor should make all its OR
Modified: trunk/src/config/networksettings.h
===================================================================
--- trunk/src/config/networksettings.h 2007-10-10 03:38:52 UTC (rev 1985)
+++ trunk/src/config/networksettings.h 2007-10-10 03:39:19 UTC (rev 1986)
@@ -31,15 +31,20 @@
#include <QList>
#include <QStringList>
-#include "vidaliasettings.h"
+#include "abstracttorsettings.h"
-class NetworkSettings : private VidaliaSettings
+class NetworkSettings : public AbstractTorSettings
{
public:
/** Default constructor. */
- NetworkSettings();
+ NetworkSettings(TorControl *torControl);
+ /** Applies the current network configuration settings to Tor. If
+ * * <b>errmsg</b> is specified and an error occurs while applying the
+ * settings, it will be set to a string describing the error. */
+ bool apply(QString *errmsg = 0);
+
/** Returns true if we need to set ReachableAddresses because we're behind a
* restrictive firewall that limits the ports Tor can connect to. */
bool getFascistFirewall();