[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,