[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r2947: Created new class/conf to store all node policy related sett (in vidalia/branches/exit-country/src/vidalia: . config geoip)
Author: cviecco
Date: 2008-08-08 11:41:51 -0400 (Fri, 08 Aug 2008)
New Revision: 2947
Added:
vidalia/branches/exit-country/src/vidalia/config/nodepolicysettings.cpp
vidalia/branches/exit-country/src/vidalia/config/nodepolicysettings.h
Modified:
vidalia/branches/exit-country/src/vidalia/CMakeLists.txt
vidalia/branches/exit-country/src/vidalia/config/networkoutpage.cpp
vidalia/branches/exit-country/src/vidalia/config/networkoutpage.h
vidalia/branches/exit-country/src/vidalia/config/vidaliasettings.cpp
vidalia/branches/exit-country/src/vidalia/config/vidaliasettings.h
vidalia/branches/exit-country/src/vidalia/geoip/filegeoipresolver.cpp
Log:
Created new class/conf to store all node policy related settings.
These were before in less appropiate places
Modified: vidalia/branches/exit-country/src/vidalia/CMakeLists.txt
===================================================================
--- vidalia/branches/exit-country/src/vidalia/CMakeLists.txt 2008-08-06 19:59:49 UTC (rev 2946)
+++ vidalia/branches/exit-country/src/vidalia/CMakeLists.txt 2008-08-08 15:41:51 UTC (rev 2947)
@@ -70,8 +70,7 @@
config/torsettings.cpp
config/vidaliasettings.cpp
config/vsettings.cpp
- #config/filegeoipresolver.cpp
- #config/geoip.cpp
+ config/nodepolicysettings.cpp
)
qt4_wrap_cpp(vidalia_SRCS
config/abstracttorsettings.h
@@ -93,7 +92,7 @@
config/torsettings.h
config/vidaliasettings.h
config/vsettings.h
- #config/filegeoipresolver.h
+ config/nodepolicysettings.h
)
if (USE_MINIUPNPC)
include_directories(${MINIUPNPC_INCLUDE_DIR})
Modified: vidalia/branches/exit-country/src/vidalia/config/networkoutpage.cpp
===================================================================
--- vidalia/branches/exit-country/src/vidalia/config/networkoutpage.cpp 2008-08-06 19:59:49 UTC (rev 2946)
+++ vidalia/branches/exit-country/src/vidalia/config/networkoutpage.cpp 2008-08-08 15:41:51 UTC (rev 2947)
@@ -16,9 +16,9 @@
#include <vidalia.h>
#include "networkoutpage.h"
-#include <networksettings.h>
+//#include <networksettings.h>
+#include <nodepolicysettings.h>
-
/** Default Constructor */
NetworkoutPage::NetworkoutPage(QWidget *parent)
: ConfigPage(parent, tr("Networkout"))
@@ -27,8 +27,10 @@
ui.setupUi(this);
/* Create VidaliaSettings object */
- _settings = new VidaliaSettings();
+ //_settings = new VidaliaSettings();
+ _settings = new NodePolicySettings(Vidalia::torControl());
+
/*Create a network status object ... is there one already?*/
_torControl = Vidalia::torControl();
NetworkStatus networkStatus = _torControl->getNetworkStatus();
@@ -75,8 +77,10 @@
bool
NetworkoutPage::save(QString &errmsg)
{
- NetworkSettings settings(Vidalia::torControl());
+ //NetworkSettings settings(Vidalia::torControl());
+ NodePolicySettings settings(Vidalia::torControl());
+
Q_UNUSED(errmsg);
_settings->setUseNodePolicy(ui.chkNodePolicy->isChecked());
@@ -111,8 +115,10 @@
NetworkoutPage::load()
{
- NetworkSettings settings(Vidalia::torControl());
+ //NetworkSettings settings(Vidalia::torControl());
+ NodePolicySettings settings(Vidalia::torControl());
+
//load saved GUIsettings and apply
ui.chkNodePolicy->setChecked(_settings->getUseNodePolicy());
ui.chkExitNodePolicy->setChecked(settings.getUseExitNodePolicy());
@@ -389,13 +395,15 @@
void
NetworkoutPage::applyTorSettings(){
- NetworkSettings settings(Vidalia::torControl());
+ //NetworkSettings settings(Vidalia::torControl());
+ NodePolicySettings settings(Vidalia::torControl());
+
/*Now save only is settings have been enabled*/
if((ui.chkNodePolicy->isChecked())){
settings.setUseExitNodePolicy(ui.chkExitNodePolicy->isChecked());
settings.setUseExcludeNodePolicy(ui.chkExcludeNodePolicy->isChecked());
- vInfo("node pol applyset, checked!\n");
+ fprintf(stderr,"node pol applyset, checked!\n");
/*Only save if we have enabled saving exit policies!*/
if(ui.chkExitNodePolicy->isChecked()){
@@ -404,7 +412,7 @@
/*iterate over listwidget?*/
QStringList exitList;
QString current=ui.cmboExitNodesbyCountry->currentText();
- //vInfo("qlen=%d",current.length());
+ fprintf(stderr,"qlen=%d",current.length());
QStringList countrylist=current.split("(");
current=countrylist.at(0);
current=getExitCountry();
@@ -420,6 +428,7 @@
exitList<<id;
}
//fprintf(stderr,"exit_size=%d\n",exitList.size());
+ //next only stores it, it does not apply it!
settings.setExitNodeList(exitList);
}
if (ui.chkExcludeNodePolicy->isChecked()){
@@ -447,7 +456,8 @@
if(ui.chkCloseAllActiveCircuits->isChecked()){
closeAllCircuits();
}
-
+ /*Now we finalize by actually applying the settings!*/
+ settings.apply();
}
/*Get the list of selected exclude countryies from the gui*/
Modified: vidalia/branches/exit-country/src/vidalia/config/networkoutpage.h
===================================================================
--- vidalia/branches/exit-country/src/vidalia/config/networkoutpage.h 2008-08-06 19:59:49 UTC (rev 2946)
+++ vidalia/branches/exit-country/src/vidalia/config/networkoutpage.h 2008-08-08 15:41:51 UTC (rev 2947)
@@ -27,6 +27,7 @@
#include <routerstatus.h>
#include <filegeoipresolver.h>
#include <geoipresolver.h>
+#include <nodepolicysettings.h>
//#include <torsettings.h>
#include "configpage.h"
@@ -83,7 +84,8 @@
void load_longnames();
/** A VidaliaSettings object used for saving/loading settings */
- VidaliaSettings* _settings;
+ //VidaliaSettings* _settings;
+ NodePolicySettings *_settings;
/** Qt Designer generated object */
Ui::NetworkoutPage ui;
Added: vidalia/branches/exit-country/src/vidalia/config/nodepolicysettings.cpp
===================================================================
--- vidalia/branches/exit-country/src/vidalia/config/nodepolicysettings.cpp (rev 0)
+++ vidalia/branches/exit-country/src/vidalia/config/nodepolicysettings.cpp 2008-08-08 15:41:51 UTC (rev 2947)
@@ -0,0 +1,177 @@
+/*
+** This file is part of Vidalia, and is subject to the license terms in the
+** LICENSE file, found in the top level directory of this distribution. If you
+** did not receive the LICENSE file with this file, you may obtain it from the
+** Vidalia source package distributed by the Vidalia Project at
+** http://www.vidalia-project.net/. No part of Vidalia, including this file,
+** may be copied, modified, propagated, or distributed except according to the
+** terms described in the LICENSE file.
+*/
+
+/*
+** \file networksettings.cpp
+** \version $Id: networksettings.cpp 2931 2008-08-04 13:34:58Z cviecco $
+** \brief Settings for configuring an HTTP/HTTPS proxy or bridges
+*/
+
+#include "nodepolicysettings.h"
+
+#define SETTING_USE_NODE_POLICY "UseNodePolicy"
+#define SETTING_EXIT_NODES_COUNTRY "ExitNodesCountry"
+#define SETTING_EXCLUDE_NODES_COUNTRY_LIST "ExcludeNodesCountryList"
+
+#define SETTING_USE_EXIT_NODE_POLICY "UseExitNodePolicy"
+#define SETTING_EXIT_NODE_LIST "ExitNodes"
+#define SETTING_USE_EXCLUDE_NODE_POLICY "UseExcludeNodePolicy"
+#define SETTING_EXCLUDE_NODE_LIST "ExcludeNodes"
+
+
+/** Default constructor */
+NodePolicySettings::NodePolicySettings(TorControl *torControl)
+: AbstractTorSettings("NodePolicy", torControl)
+{
+ setDefault(SETTING_USE_NODE_POLICY,false);
+ setDefault(SETTING_EXIT_NODES_COUNTRY,"");
+ setDefault(SETTING_EXCLUDE_NODES_COUNTRY_LIST,"");
+
+
+ setDefault(SETTING_USE_EXIT_NODE_POLICY , false);
+ setDefault(SETTING_EXIT_NODE_LIST,
+ QStringList() << "blutmagie" << "chaoscomputerclub23");
+ setDefault(SETTING_USE_EXCLUDE_NODE_POLICY , false);
+
+}
+
+/** 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
+NodePolicySettings::apply(QString *errmsg)
+{
+ QMultiHash<QString, QString> conf;
+ quint32 torVersion = torControl()->getTorVersion();
+
+ fprintf(stderr,"apply nodeolicy!\n");
+ if(getUseExitNodePolicy()){
+ //vInfo(us)
+ conf.insert(SETTING_EXIT_NODE_LIST,
+ localValue(SETTING_EXIT_NODE_LIST).toStringList().join(","));
+ conf.insert("StrictExitNodes","1");
+ }else{
+ //very bad!, need to find better way...
+ conf.insert("StrictExitNodes","0");
+ conf.insert(SETTING_EXIT_NODE_LIST,"");
+ }
+ conf.insert(SETTING_EXCLUDE_NODE_LIST,
+ localValue(SETTING_EXCLUDE_NODE_LIST).toStringList().join(","));
+
+
+ return torControl()->setConf(conf, errmsg);
+}
+
+
+bool
+NodePolicySettings::getUseNodePolicy(){
+ return value(SETTING_USE_NODE_POLICY).toBool();
+
+}
+
+void
+NodePolicySettings::setUseNodePolicy(bool useNodePolicy){
+ setValue(SETTING_USE_NODE_POLICY, useNodePolicy);
+}
+
+
+QString
+NodePolicySettings::getExitNodeCountry()
+//getLanguageCode()
+{
+ return value(SETTING_EXIT_NODES_COUNTRY).toString();
+}
+
+void
+NodePolicySettings::
+setExitNodeCountry(QString exitCountry)
+{
+ setValue(SETTING_EXIT_NODES_COUNTRY, exitCountry);
+}
+
+
+QStringList
+NodePolicySettings::getExcludeNodeCountry()
+{
+ return value(SETTING_EXCLUDE_NODES_COUNTRY_LIST).toStringList();
+}
+
+void
+NodePolicySettings::setExcludeNodeCountry( QStringList
+ &excludeCountryList)
+{
+ setValue(SETTING_EXCLUDE_NODES_COUNTRY_LIST, excludeCountryList);
+}
+
+
+
+
+
+/** Returns true if Tor should use network policies for its nodes
+ * network. */
+bool
+NodePolicySettings::getUseExitNodePolicy(){
+ return value(SETTING_USE_EXIT_NODE_POLICY).toBool();
+}
+
+/** Sets to <b>useNodePolicy</b> whether Tor should try
+ to use node policies to access the newtowk. */
+void
+NodePolicySettings::setUseExitNodePolicy(bool useNodePolicy){
+ setValue(SETTING_USE_EXIT_NODE_POLICY, useNodePolicy);
+}
+
+/** Returns a list of bridge nodes Tor should use. */
+QStringList
+NodePolicySettings::getExitNodeList()
+{
+ return value(SETTING_EXIT_NODE_LIST).toStringList();
+}
+
+/** Sets to <b>bridgeList</b> the list of bridge nodes Tor should use. */
+void
+NodePolicySettings::setExitNodeList(const QStringList &exitNodeList)
+{
+ fprintf(stderr,"setting exit?\n");
+ setValue(SETTING_EXIT_NODE_LIST, exitNodeList);
+}
+
+
+bool
+NodePolicySettings::getUseExcludeNodePolicy(){
+ //return value(SETTING_USE_EXCLUDE_NODE_POLICY).toBool();
+ return localValue(SETTING_USE_EXCLUDE_NODE_POLICY).toBool();
+}
+
+/** Sets to <b>useNodePolicy</b> whether Tor should try
+ to use node policies to access the newtowk. */
+void
+NodePolicySettings::setUseExcludeNodePolicy(bool useNodeExcludePolicy){
+ setValue(SETTING_USE_EXCLUDE_NODE_POLICY, useNodeExcludePolicy);
+}
+
+
+
+/** Returns a list of bridge nodes Tor should use. */
+QStringList
+NodePolicySettings::getExcludeNodeList()
+{
+ return value(SETTING_EXCLUDE_NODE_LIST).toStringList();
+}
+
+/** Sets to <b>bridgeList</b> the list of bridge nodes Tor should use. */
+void
+NodePolicySettings::setExcludeNodeList(const QStringList &excludeNodeList)
+{
+ setValue(SETTING_EXCLUDE_NODE_LIST, excludeNodeList);
+}
+
+
+
Added: vidalia/branches/exit-country/src/vidalia/config/nodepolicysettings.h
===================================================================
--- vidalia/branches/exit-country/src/vidalia/config/nodepolicysettings.h (rev 0)
+++ vidalia/branches/exit-country/src/vidalia/config/nodepolicysettings.h 2008-08-08 15:41:51 UTC (rev 2947)
@@ -0,0 +1,88 @@
+/*
+** This file is part of Vidalia, and is subject to the license terms in the
+** LICENSE file, found in the top level directory of this distribution. If you
+** did not receive the LICENSE file with this file, you may obtain it from the
+** Vidalia source package distributed by the Vidalia Project at
+** http://www.vidalia-project.net/. No part of Vidalia, including this file,
+** may be copied, modified, propagated, or distributed except according to the
+** terms described in the LICENSE file.
+*/
+
+/*
+** \file networksettings.h
+** \version $Id: networksettings.h 2753 2008-06-18 21:51:08Z cviecco $
+** \brief Settings for configuring an HTTP/HTTPS proxy or bridges
+*/
+
+#ifndef _NODEPOLICYSETTINGS_H
+#define _NODEPOLICYSETTINGS_H
+
+#include <QList>
+#include <QStringList>
+
+#include "abstracttorsettings.h"
+
+
+class NodePolicySettings : public AbstractTorSettings
+{
+ Q_OBJECT
+
+public:
+ /** Default constructor. */
+ NodePolicySettings(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);
+
+
+ // determines if vidalia should try to manage Tor's Nodes
+ bool getUseNodePolicy();
+ void setUseNodePolicy(bool useNodePolicy);
+
+ //getting the exit node country (last saved that is!)
+ QString getExitNodeCountry();
+ // Saves the preferred exit country
+ void setExitNodeCountry(QString exitCountry);
+
+ //getting the exit node country (last saved that is!)
+ QStringList getExcludeNodeCountry();
+ // Saves the preferred exit country
+ //void VidaliaSettings::setExcludeNodeCountry(QStringList&)
+ void setExcludeNodeCountry(QStringList &excludeCountry);
+
+
+ /** Returns true if vidalia should manage Tor's exit nodes
+ * network. */
+ bool getUseExitNodePolicy();
+ /** Sets to <b>useNodePolicy</b> whether Tor should try
+ to use node policies to access the newtowk. */
+ void setUseExitNodePolicy(bool useNodePolicy);
+
+
+ /** Returns a list of bridge nodes Tor should use. */
+ QStringList getExitNodeList();
+ /** Sets to <b>bridgeList</b> the list of bridge nodes Tor should use. */
+ void setExitNodeList(const QStringList &exitNodeList);
+
+ /** Returns true if vidalia should manage Tor's exit nodes
+ * network. */
+ bool getUseExcludeNodePolicy();
+ /** Sets to <b>useNodePolicy</b> whether Tor should try
+ to use node policies to access the newtowk. */
+ void setUseExcludeNodePolicy(bool useExcludeNodePolicy);
+
+
+
+ /** Returns Tor should use. */
+ QStringList getExcludeNodeList();
+ /** Sets to ould use. */
+ void setExcludeNodeList(const QStringList &excludeNodeList);
+
+
+};
+
+#endif
+
Modified: vidalia/branches/exit-country/src/vidalia/config/vidaliasettings.cpp
===================================================================
--- vidalia/branches/exit-country/src/vidalia/config/vidaliasettings.cpp 2008-08-06 19:59:49 UTC (rev 2946)
+++ vidalia/branches/exit-country/src/vidalia/config/vidaliasettings.cpp 2008-08-08 15:41:51 UTC (rev 2947)
@@ -234,45 +234,4 @@
}
-bool
-VidaliaSettings::getUseNodePolicy(){
- return value(SETTING_USE_NODE_POLICY).toBool();
-}
-
-void
-VidaliaSettings::setUseNodePolicy(bool useNodePolicy){
- setValue(SETTING_USE_NODE_POLICY, useNodePolicy);
-}
-
-
-QString
-VidaliaSettings::getExitNodeCountry()
-//getLanguageCode()
-{
- return value(SETTING_EXIT_NODES_COUNTRY).toString();
-}
-
-void
-VidaliaSettings::
-setExitNodeCountry(QString exitCountry)
-{
- setValue(SETTING_EXIT_NODES_COUNTRY, exitCountry);
-}
-
-
-QStringList
-VidaliaSettings::getExcludeNodeCountry()
-{
- return value(SETTING_EXCLUDE_NODES_COUNTRY_LIST).toStringList();
-}
-
-void
-VidaliaSettings::setExcludeNodeCountry( QStringList
- &excludeCountryList)
-{
- setValue(SETTING_EXCLUDE_NODES_COUNTRY_LIST, excludeCountryList);
-}
-
-
-
Modified: vidalia/branches/exit-country/src/vidalia/config/vidaliasettings.h
===================================================================
--- vidalia/branches/exit-country/src/vidalia/config/vidaliasettings.h 2008-08-06 19:59:49 UTC (rev 2946)
+++ vidalia/branches/exit-country/src/vidalia/config/vidaliasettings.h 2008-08-08 15:41:51 UTC (rev 2947)
@@ -89,22 +89,6 @@
void setProxyExecutableArguments(const QStringList &proxyExecutableArguments);
- // determines if vidalia should try to manage Tor's Nodes
- bool getUseNodePolicy();
- void setUseNodePolicy(bool useNodePolicy);
-
- //getting the exit node country (last saved that is!)
- QString getExitNodeCountry();
- // Saves the preferred exit country
- void setExitNodeCountry(QString exitCountry);
-
- //getting the exit node country (last saved that is!)
- QStringList getExcludeNodeCountry();
- // Saves the preferred exit country
- //void VidaliaSettings::setExcludeNodeCountry(QStringList&)
- void setExcludeNodeCountry(QStringList &excludeCountry);
-
-
};
#endif
Modified: vidalia/branches/exit-country/src/vidalia/geoip/filegeoipresolver.cpp
===================================================================
--- vidalia/branches/exit-country/src/vidalia/geoip/filegeoipresolver.cpp 2008-08-06 19:59:49 UTC (rev 2946)
+++ vidalia/branches/exit-country/src/vidalia/geoip/filegeoipresolver.cpp 2008-08-08 15:41:51 UTC (rev 2947)
@@ -175,7 +175,6 @@
//now get location
- //iploc=location[ipRange[found].location];
iploc=location[ipRange[found].location2];
//now convert
GeoIp rvalue(ip, iploc.latitude, iploc.longitude,