[Pkg-privacy-commits] [vidalia] 02/07: Bring back our Tails-specific diff.

Ximin Luo infinity0 at moszumanska.debian.org
Sat Aug 22 13:16:14 UTC 2015


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to annotated tag debian/0.2.21-1+tails1
in repository vidalia.

commit d06a046e34a32f0c09d4909c01da93aa1cdf40a9
Author: intrigeri <intrigeri at boum.org>
Date:   Tue Sep 4 16:55:02 2012 +0200

    Bring back our Tails-specific diff.
    
    This reverts commit 568998077498ca9452a565a26d7cb9c6440a09cf.
    
    Conflicts:
    	debian/changelog
---
 debian/patches/debians-tor-binary-path.patch       |   8 +-
 debian/patches/series                              |   2 +
 debian/patches/tails-remove-useless-controls.patch | 349 +++++++++++++++++++++
 debian/patches/vidalia-bridgeconf.patch            | 226 +++++++++++++
 4 files changed, 582 insertions(+), 3 deletions(-)

diff --git a/debian/patches/debians-tor-binary-path.patch b/debian/patches/debians-tor-binary-path.patch
index f12f55c..3455c11 100644
--- a/debian/patches/debians-tor-binary-path.patch
+++ b/debian/patches/debians-tor-binary-path.patch
@@ -1,8 +1,10 @@
 Author: dererk
 Description: Even though upstream has implemented a block of code to perform this check, as Tor's binary is located in /usr/sbin path, regular users are likely to lack that path in their PATH enviroment variable. This patch purpose is setting it to the right Debian's Tor package.
---- old/src/vidalia/config/TorSettings.cpp	2009-01-14 13:56:54.000000000 -0200
-+++ new/src/vidalia/config/TorSettings.cpp	2010-01-23 06:02:41.930010310 -0300
-@@ -68,7 +68,8 @@
+Index: git/src/vidalia/config/TorSettings.cpp
+===================================================================
+--- git.orig/src/vidalia/config/TorSettings.cpp	2011-08-30 15:44:10.457509573 +0200
++++ git/src/vidalia/config/TorSettings.cpp	2011-08-30 15:46:35.494994101 +0200
+@@ -76,7 +76,8 @@
    else
      setDefault(SETTING_TOR_EXECUTABLE, programFiles + "\\Tor\\tor.exe");
  #else
diff --git a/debian/patches/series b/debian/patches/series
index a608de8..9e38729 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,4 @@
 debians-tor-binary-path.patch
+vidalia-bridgeconf.patch
+tails-remove-useless-controls.patch
 use-control-socket.patch
diff --git a/debian/patches/tails-remove-useless-controls.patch b/debian/patches/tails-remove-useless-controls.patch
new file mode 100644
index 0000000..65519d7
--- /dev/null
+++ b/debian/patches/tails-remove-useless-controls.patch
@@ -0,0 +1,349 @@
+From: Vern Sun <s5unty at gmail.com>
+Date: Mon, 28 Nov 2011 11:44:36 +0100
+Subject: tails-remove-useless-controls
+
+---
+ src/vidalia/MainWindow.cpp |   60 +------------------
+ src/vidalia/MainWindow.h   |    1 -
+ src/vidalia/MainWindow.ui  |  138 --------------------------------------------
+ 3 files changed, 2 insertions(+), 197 deletions(-)
+
+diff --git a/src/vidalia/MainWindow.cpp b/src/vidalia/MainWindow.cpp
+index b404802..67b8aa0 100644
+--- a/src/vidalia/MainWindow.cpp
++++ b/src/vidalia/MainWindow.cpp
+@@ -215,8 +215,7 @@ MainWindow::MainWindow()
+          this, SLOT(upnpError(UPNPControl::UPNPError)));
+ #endif
+ 
+-  ui.chkShowOnStartup->setChecked(settings.showMainWindowAtStart());
+-  if (ui.chkShowOnStartup->isChecked())
++  if (settings.showMainWindowAtStart())
+     show(); 
+   /* Optimistically hope that the tray icon gets added. */
+   _trayIcon.show();
+@@ -249,7 +248,6 @@ MainWindow::setVisible(bool visible)
+     /* In Gnome, will hide buttons if Vidalia is run on startup. */
+     if (!QSystemTrayIcon::isSystemTrayAvailable()) {
+       /* Don't let people hide the main window, since that's all they have. */
+-      ui.chkShowOnStartup->hide();
+       ui.btnHide->hide();
+       /* Causes window to not appear in Enlightenment. */
+       //setMinimumHeight(height()-ui.btnHide->height());
+@@ -265,16 +263,6 @@ MainWindow::retranslateUi()
+   ui.retranslateUi(this);
+ 
+   updateTorStatus(_status);
+-  if (_status == Stopped) {
+-    _actionStartStopTor->setText(tr("Start Tor"));
+-    ui.lblStartStopTor->setText(tr("Start Tor"));
+-  } else if (_status == Starting) {
+-    _actionStartStopTor->setText(tr("Starting Tor"));
+-    ui.lblStartStopTor->setText(tr("Starting Tor"));
+-  } else {
+-    _actionStartStopTor->setText(tr("Stop Tor"));
+-    ui.lblStartStopTor->setText(tr("Stop Tor"));
+-  }
+ 
+   _actionShowBandwidth->setText(tr("Bandwidth Graph"));
+   _actionShowMessageLog->setText(tr("Message Log"));
+@@ -423,9 +411,6 @@ MainWindow::close()
+ void 
+ MainWindow::createActions()
+ {
+-  _actionStartStopTor = new QAction(tr("Start Tor"), this);
+-  connect(_actionStartStopTor, SIGNAL(triggered()), this, SLOT(start()));
+-
+   _actionExit = new QAction(tr("Exit"), this);
+   connect(_actionExit, SIGNAL(triggered()), this, SLOT(close()));
+ 
+@@ -468,7 +453,6 @@ MainWindow::createActions()
+   /* Don't give the menu items icons on OS X, since they end up in the
+    * application menu bar. Menu bar items on OS X typically do not have
+    * icons. */
+-  _actionStartStopTor->setIcon(QIcon(IMG_START_TOR_16));
+   _actionExit->setIcon(QIcon(IMG_EXIT));
+   _actionShowBandwidth->setIcon(QIcon(IMG_BWGRAPH));
+   _actionShowMessageLog->setIcon(QIcon(IMG_MESSAGELOG));
+@@ -506,8 +490,6 @@ QMenu*
+ MainWindow::createTrayMenu()
+ {
+   QMenu *menu = new QMenu(this);
+-  menu->addAction(_actionStartStopTor);
+-  menu->addSeparator();
+   menu->addAction(_actionShowBandwidth);
+   menu->addAction(_actionShowMessageLog);
+   menu->addAction(_actionShowNetworkMap);
+@@ -537,7 +519,6 @@ MainWindow::createMenuBar()
+   /* Mac users sure like their shortcuts. Actions NOT mentioned below
+    * don't explicitly need shortcuts, since they are merged to the default
+    * menubar and get the default shortcuts anyway. */
+-  _actionStartStopTor->setShortcut(tr("Ctrl+T"));
+   _actionShowBandwidth->setShortcut(tr("Ctrl+B"));
+   _actionShowMessageLog->setShortcut(tr("Ctrl+L"));
+   _actionShowNetworkMap->setShortcut(tr("Ctrl+N"));
+@@ -564,8 +545,6 @@ MainWindow::createMenuBar()
+   fileMenu->addAction(_actionShowConfig);
+ 
+   QMenu *torMenu = _menuBar->addMenu(tr("Tor"));
+-  torMenu->addAction(_actionStartStopTor);
+-  torMenu->addSeparator();
+   torMenu->addAction(_actionNewIdentity);
+ 
+   QMenu *viewMenu = _menuBar->addMenu(tr("View"));
+@@ -896,20 +875,7 @@ MainWindow::updateTorStatus(TorStatus status)
+       actionText = tr("Start Tor");
+       trayIconFile = IMG_TOR_STOPPED;
+       statusIconFile = IMG_TOR_STOPPED_48;
+-      _actionStartStopTor->setEnabled(true);
+-      _actionStartStopTor->setText(actionText);
+-      _actionStartStopTor->setIcon(QIcon(IMG_START_TOR_16));
+-      ui.lblStartStopTor->setEnabled(true);
+-      ui.lblStartStopTor->setText(actionText);
+-      ui.lblStartStopTor->setPixmap(QPixmap(IMG_START_TOR_48));
+-      ui.lblStartStopTor->setStatusTip(actionText);
+-
+-      /* XXX: This might need to be smarter if we ever start connecting other
+-       * slots to these triggered() and clicked() signals. */
+-      QObject::disconnect(_actionStartStopTor, SIGNAL(triggered()), this, 0);
+-      QObject::disconnect(ui.lblStartStopTor, SIGNAL(clicked()), this, 0);
+-      connect(_actionStartStopTor, SIGNAL(triggered()), this, SLOT(start()));
+-      connect(ui.lblStartStopTor, SIGNAL(clicked()), this, SLOT(start()));
++
+       setStartupProgressVisible(false);
+   } else if (status == Stopping) {
+       if (_delayedShutdownStarted) {
+@@ -920,32 +886,10 @@ MainWindow::updateTorStatus(TorStatus status)
+       }
+       trayIconFile = IMG_TOR_STOPPING;
+       statusIconFile = IMG_TOR_STOPPING_48;
+-      
+-      ui.lblStartStopTor->setStatusTip(tr("Stop Tor Now"));
+-  } else if (status == Started) {
+-      actionText = tr("Stop Tor");
+-      _actionStartStopTor->setEnabled(true);
+-      _actionStartStopTor->setText(actionText);
+-      _actionStartStopTor->setIcon(QIcon(IMG_STOP_TOR_16));
+-      ui.lblStartStopTor->setEnabled(true);
+-      ui.lblStartStopTor->setText(actionText);
+-      ui.lblStartStopTor->setPixmap(QPixmap(IMG_STOP_TOR_48));
+-      ui.lblStartStopTor->setStatusTip(actionText);
+-            
+-      /* XXX: This might need to be smarter if we ever start connecting other
+-       * slots to these triggered() and clicked() signals. */
+-      QObject::disconnect(_actionStartStopTor, SIGNAL(triggered()), this, 0);
+-      QObject::disconnect(ui.lblStartStopTor, SIGNAL(clicked()), this, 0);
+-      connect(_actionStartStopTor, SIGNAL(triggered()), this, SLOT(stop()));
+-      connect(ui.lblStartStopTor, SIGNAL(clicked()), this, SLOT(stop()));
+   } else if (status == Starting)  {
+       statusText = tr("Starting the Tor software");
+       trayIconFile = IMG_TOR_STARTING;
+       statusIconFile = IMG_TOR_STARTING_48;
+-      _actionStartStopTor->setEnabled(false);
+-      ui.lblStartStopTor->setText(tr("Starting Tor"));
+-      ui.lblStartStopTor->setEnabled(false);
+-      ui.lblStartStopTor->setStatusTip(statusText);
+       setStartupProgressVisible(true);
+       setStartupProgress(STARTUP_PROGRESS_STARTING, statusText);
+   } else if (status == CircuitEstablished) {
+diff --git a/src/vidalia/MainWindow.h b/src/vidalia/MainWindow.h
+index 8cf424b..4900df0 100644
+--- a/src/vidalia/MainWindow.h
++++ b/src/vidalia/MainWindow.h
+@@ -280,7 +280,6 @@ private:
+ 
+   /** Defines the actions for the tray menu */
+   QAction* _actionShowControlPanel;
+-  QAction* _actionStartStopTor;
+   QAction* _actionShowConfig;
+   QAction* _actionShowAbout;
+   QAction* _actionExit;
+diff --git a/src/vidalia/MainWindow.ui b/src/vidalia/MainWindow.ui
+index 586af36..de90734 100644
+--- a/src/vidalia/MainWindow.ui
++++ b/src/vidalia/MainWindow.ui
+@@ -224,32 +224,6 @@
+         <property name="spacing" >
+          <number>6</number>
+         </property>
+-        <item row="0" column="0" colspan="2" >
+-         <widget class="VClickLabel" native="1" name="lblStartStopTor" >
+-          <property name="text" >
+-           <string>Start Tor</string>
+-          </property>
+-          <property name="statusTip" >
+-           <string>Start Tor</string>
+-          </property>
+-          <property name="pixmap" >
+-           <pixmap>:/images/48x48/start-tor.png</pixmap>
+-          </property>
+-         </widget>
+-        </item>
+-        <item row="0" column="2" colspan="2" >
+-         <widget class="VClickLabel" native="1" name="lblSetupRelaying" >
+-          <property name="text" >
+-           <string>Setup Relaying</string>
+-          </property>
+-          <property name="statusTip" >
+-           <string>Set up a relay and help the network grow</string>
+-          </property>
+-          <property name="pixmap" >
+-           <pixmap>:/images/48x48/preferences-system-network-sharing.png</pixmap>
+-          </property>
+-         </widget>
+-        </item>
+         <item row="1" column="0" colspan="2" >
+          <widget class="VClickLabel" native="1" name="lblViewNetwork" >
+           <property name="text" >
+@@ -375,56 +349,6 @@
+                </widget>
+               </item>
+               <item>
+-               <widget class="VClickLabel" name="lblSettings" >
+-                <property name="text" >
+-                 <string>Settings</string>
+-                </property>
+-                <property name="statusTip" >
+-                 <string>Configure Vidalia</string>
+-                </property>
+-                <property name="pixmap" >
+-                 <pixmap>:/images/22x22/preferences-system.png</pixmap>
+-                </property>
+-               </widget>
+-              </item>
+-              <item>
+-               <spacer>
+-                <property name="orientation" >
+-                 <enum>Qt::Vertical</enum>
+-                </property>
+-                <property name="sizeHint" >
+-                 <size>
+-                  <width>20</width>
+-                  <height>0</height>
+-                 </size>
+-                </property>
+-               </spacer>
+-              </item>
+-             </layout>
+-            </widget>
+-           </item>
+-           <item>
+-            <spacer>
+-             <property name="orientation" >
+-              <enum>Qt::Horizontal</enum>
+-             </property>
+-             <property name="sizeHint" >
+-              <size>
+-               <width>18</width>
+-              </size>
+-             </property>
+-            </spacer>
+-           </item>
+-           <item>
+-            <widget class="QWidget" name="rightVerticalLayout" >
+-             <layout class="QVBoxLayout" >
+-              <property name="margin" >
+-               <number>0</number>
+-              </property>
+-              <property name="spacing" >
+-               <number>6</number>
+-              </property>
+-              <item>
+                <widget class="VClickLabel" name="lblAboutVidalia" >
+                 <property name="text" >
+                  <string>About</string>
+@@ -438,19 +362,6 @@
+                </widget>
+               </item>
+               <item>
+-               <widget class="VClickLabel" name="lblExit" >
+-                <property name="text" >
+-                 <string>Exit</string>
+-                </property>
+-                <property name="statusTip" >
+-                 <string>Exit Vidalia</string>
+-                </property>
+-                <property name="pixmap" >
+-                 <pixmap>:/images/22x22/application-exit.png</pixmap>
+-                </property>
+-               </widget>
+-              </item>
+-              <item>
+                <spacer>
+                 <property name="orientation" >
+                  <enum>Qt::Vertical</enum>
+@@ -493,25 +404,6 @@
+        <number>6</number>
+       </property>
+       <item>
+-       <widget class="QCheckBox" name="chkShowOnStartup" >
+-        <property name="text" >
+-         <string>Show this window on startup</string>
+-        </property>
+-       </widget>
+-      </item>
+-      <item>
+-       <spacer>
+-        <property name="orientation" >
+-         <enum>Qt::Horizontal</enum>
+-        </property>
+-        <property name="sizeHint" >
+-         <size>
+-          <width>18</width>
+-         </size>
+-        </property>
+-       </spacer>
+-      </item>
+-      <item>
+        <widget class="QPushButton" name="btnHide" >
+         <property name="text" >
+          <string>Hide</string>
+@@ -552,48 +444,18 @@
+  </resources>
+  <connections>
+   <connection>
+-   <sender>lblStartStopTor</sender>
+-   <signal>clicked()</signal>
+-   <receiver>MainWindow</receiver>
+-   <slot>start()</slot>
+-  </connection>
+-  <connection>
+    <sender>lblNewIdentity</sender>
+    <signal>clicked()</signal>
+    <receiver>MainWindow</receiver>
+    <slot>newIdentity()</slot>
+   </connection>
+   <connection>
+-   <sender>lblSetupRelaying</sender>
+-   <signal>clicked()</signal>
+-   <receiver>MainWindow</receiver>
+-   <slot>showServerConfigDialog()</slot>
+-  </connection>
+-  <connection>
+-   <sender>lblSettings</sender>
+-   <signal>clicked()</signal>
+-   <receiver>MainWindow</receiver>
+-   <slot>showConfigDialog()</slot>
+-  </connection>
+-  <connection>
+    <sender>lblAboutVidalia</sender>
+    <signal>clicked()</signal>
+    <receiver>MainWindow</receiver>
+    <slot>showAboutDialog()</slot>
+   </connection>
+   <connection>
+-   <sender>lblExit</sender>
+-   <signal>clicked()</signal>
+-   <receiver>MainWindow</receiver>
+-   <slot>close()</slot>
+-  </connection>
+-  <connection>
+-   <sender>chkShowOnStartup</sender>
+-   <signal>toggled(bool)</signal>
+-   <receiver>MainWindow</receiver>
+-   <slot>toggleShowOnStartup(bool)</slot>
+-  </connection>
+-  <connection>
+    <sender>btnHide</sender>
+    <signal>clicked()</signal>
+    <receiver>MainWindow</receiver>
diff --git a/debian/patches/vidalia-bridgeconf.patch b/debian/patches/vidalia-bridgeconf.patch
new file mode 100644
index 0000000..7f26597
--- /dev/null
+++ b/debian/patches/vidalia-bridgeconf.patch
@@ -0,0 +1,226 @@
+From: Vern Sun <s5unty at gmail.com>
+Date: Mon, 28 Nov 2011 11:44:36 +0100
+Subject: vidalia-bridgeconf
+
+---
+ src/vidalia/MainWindow.cpp             |   46 ++++++++++++++++++++++++++++++++
+ src/vidalia/MainWindow.h               |    2 +
+ src/vidalia/Vidalia.cpp                |   25 ++++++++++++-----
+ src/vidalia/Vidalia.h                  |    5 +++
+ src/vidalia/config/NetworkSettings.cpp |   17 ++++++++++++
+ src/vidalia/config/NetworkSettings.h   |    3 ++
+ 6 files changed, 90 insertions(+), 8 deletions(-)
+
+diff --git a/src/vidalia/MainWindow.cpp b/src/vidalia/MainWindow.cpp
+index d170d47..b404802 100644
+--- a/src/vidalia/MainWindow.cpp
++++ b/src/vidalia/MainWindow.cpp
+@@ -23,6 +23,7 @@
+ #include "ControlPasswordInputDialog.h"
+ #include "TorSettings.h"
+ #include "ServerSettings.h"
++#include "NetworkSettings.h"
+ #ifdef USE_AUTOUPDATE
+ #include "UpdatesAvailableDialog.h"
+ #endif
+@@ -1510,6 +1511,20 @@ MainWindow::authenticated()
+     if (status.isValid())
+       bootstrapStatusChanged(status);
+   }
++
++  NetworkSettings netSettings(_torControl);
++  if (Vidalia::showBridgeConfOnStart() && netSettings.noRealBridges()) {
++    if (!netSettings.getUseBridges()) {
++      netSettings.setUseBridges(true);
++      netSettings.apply();
++    }
++    if (showBridgeHelp() == VMessageBox::Help) {
++      showConfigDialog(ConfigDialog::Network);
++      showHelpDialog("bridges");
++    } else {
++      showConfigDialog(ConfigDialog::Network);
++    }
++  }
+ }
+ 
+ /** Called when Vidalia fails to authenticate to Tor. The failure reason is
+@@ -1860,6 +1875,37 @@ MainWindow::showServerConfigDialog()
+   showConfigDialog(ConfigDialog::Server);
+ }
+ 
++/** Displays a help message explaining how to get and setup bridges. */
++int
++MainWindow::showBridgeHelp()
++{
++  QString bridgeHelp;
++  QTextStream out(&bridgeHelp);
++
++  out << p(tr("You have started T(A)ILS in bridge mode. In order to get "
++              "Internet access you must configure at least one working "
++              "bridge (note that bridges are sometimes offline so it is "
++              "a good idea to configure several of them).")) +
++         p(tr("Note: you might see a bridge listed as 127.0.0.1:*. In "
++              "that case, just ignore it and <b>leave it be</b>. It's "
++              "there to work around a deficiency in Tor's current bridge "
++              "handling - removing it may disable bridge mode.")) +
++         p(tr("If you don't know what a bridge is, please read the "
++              "\"<i>What are bridge relays?</i>\" section in the Vidalia "
++              "help.")) +
++         p(tr("If you don't know any bridges and don't know where to get "
++              "them, please read the \"<i>How do I find a bridge relay?</i>\" "
++              "section of the Vidalia help.")) +
++         p(tr("You can access Vidalia's bridge help by pressing the Help "
++              "button below."))
++      << endl;
++
++  return VMessageBox::information(this, tr("T(A)ILS Bridge Mode Help"),
++                     bridgeHelp,
++                     VMessageBox::Ok|VMessageBox::Default|VMessageBox::Escape,
++                     VMessageBox::Help);
++}
++
+ /** Called when the user selects the "New Identity" action from the menu. */
+ void
+ MainWindow::newIdentity()
+diff --git a/src/vidalia/MainWindow.h b/src/vidalia/MainWindow.h
+index dc251e1..8cf424b 100644
+--- a/src/vidalia/MainWindow.h
++++ b/src/vidalia/MainWindow.h
+@@ -114,6 +114,8 @@ private slots:
+   void showConfigDialog(ConfigDialog::Page page = ConfigDialog::General);
+   /** Displays the Configuration dialog, set to the Server page. */
+   void showServerConfigDialog();
++  /** Displays a help message explaining how to get and setup bridges. */
++  int showBridgeHelp();
+   /** Called when the "show on startup" checkbox is toggled. */
+   void toggleShowOnStartup(bool checked);
+   /** Called when the web browser or IM client have stopped */
+diff --git a/src/vidalia/Vidalia.cpp b/src/vidalia/Vidalia.cpp
+index 53b41c9..d2d1d8f 100644
+--- a/src/vidalia/Vidalia.cpp
++++ b/src/vidalia/Vidalia.cpp
+@@ -40,14 +40,15 @@
+ #include <stdlib.h>
+ 
+ /* Available command-line arguments. */
+-#define ARG_LANGUAGE   "lang"     /**< Argument specifying language.    */
+-#define ARG_GUISTYLE   "style"    /**< Argument specfying GUI style.    */
+-#define ARG_RESET      "reset"    /**< Reset Vidalia's saved settings.  */
+-#define ARG_HELP       "help"     /**< Display usage informatino.       */
+-#define ARG_DATADIR    "datadir"  /**< Directory to use for data files. */
+-#define ARG_PIDFILE    "pidfile"  /**< Location and name of our pidfile.*/
+-#define ARG_LOGFILE    "logfile"  /**< Location of our logfile.         */
+-#define ARG_LOGLEVEL   "loglevel" /**< Log verbosity.                   */
++#define ARG_LANGUAGE   "lang"       /**< Argument specifying language.    */
++#define ARG_GUISTYLE   "style"      /**< Argument specfying GUI style.    */
++#define ARG_RESET      "reset"      /**< Reset Vidalia's saved settings.  */
++#define ARG_HELP       "help"       /**< Display usage informatino.       */
++#define ARG_DATADIR    "datadir"    /**< Directory to use for data files. */
++#define ARG_PIDFILE    "pidfile"    /**< Location and name of our pidfile.*/
++#define ARG_LOGFILE    "logfile"    /**< Location of our logfile.         */
++#define ARG_LOGLEVEL   "loglevel"   /**< Log verbosity.                   */
++#define ARG_BRIDGECONF "bridgeconf" /**< Display network conf on start.   */
+ #define ARG_READ_PASSWORD_FROM_STDIN  \
+   "read-password-from-stdin" /**< Read password from stdin. */
+ 
+@@ -58,6 +59,7 @@ QString Vidalia::_language;            /**< The current language.            */
+ TorControl* Vidalia::_torControl = 0;  /**< Main TorControl object.          */
+ Log Vidalia::_log;
+ QList<QTranslator *> Vidalia::_translators;
++bool Vidalia::_showBridgeConfOnStart = false;
+ 
+ 
+ /** Catches debugging messages from Qt and sends them to Vidalia's logs. If Qt
+@@ -124,6 +126,9 @@ Vidalia::Vidalia(QStringList args, int &argc, char **argv)
+   /* Set the GUI style appropriately. */
+   setStyle(_args.value(ARG_GUISTYLE));
+ 
++  if (_args.contains(ARG_BRIDGECONF))
++    _showBridgeConfOnStart = true;
++
+   /* Creates a TorControl object, used to talk to Tor. */
+   _torControl = new TorControl(TorSettings().getControlMethod());
+ 
+@@ -217,6 +222,10 @@ Vidalia::showUsageMessageBox()
+   out << trow(tcol("-"ARG_LANGUAGE" <language>") + 
+               tcol(tr("Sets Vidalia's language.") +
+                    "<br>[" + LanguageSupport::languageCodes().join("|") + "]"));
++  out << trow(tcol("-"ARG_BRIDGECONF) + 
++              tcol(tr("Shows the bridge configuration dialog immediately "
++                      "after Vidalia has started and informs the user how to "
++                      "get and setup bridges.")));
+   out << "</table>";
+ 
+   VMessageBox::information(0, 
+diff --git a/src/vidalia/Vidalia.h b/src/vidalia/Vidalia.h
+index b7d09f4..88cb858 100644
+--- a/src/vidalia/Vidalia.h
++++ b/src/vidalia/Vidalia.h
+@@ -74,6 +74,10 @@ public:
+ 
+   /** Returns Vidalia's main TorControl object. */
+   static TorControl* torControl() { return _torControl; }
++
++  /** Returns true if we should show the network config page on start and 
++   *  guide the user through setting up bridges. */
++  static bool showBridgeConfOnStart() { return _showBridgeConfOnStart; }
+   
+   /** Returns the location Vidalia uses for its data files. */
+   static QString dataDirectory();
+@@ -158,6 +162,7 @@ private:
+   static TorControl* _torControl;      /**< Vidalia's main TorControl object.*/
+   static Log _log; /**< Logs debugging messages to file or stdout. */
+   static QList<QTranslator *> _translators; /**< List of installed translators. */
++  static bool _showBridgeConfOnStart;
+ };
+ 
+ #endif
+diff --git a/src/vidalia/config/NetworkSettings.cpp b/src/vidalia/config/NetworkSettings.cpp
+index 0229442..49fb144 100644
+--- a/src/vidalia/config/NetworkSettings.cpp
++++ b/src/vidalia/config/NetworkSettings.cpp
+@@ -16,6 +16,8 @@
+ #include "NetworkSettings.h"
+ #include "TorControl.h"
+ 
++#include <QRegExp>
++
+ #define SETTING_FASCIST_FIREWALL    "FascistFirewall"
+ #define SETTING_REACHABLE_ADDRESSES "ReachableAddresses"
+ 
+@@ -284,6 +286,21 @@ NetworkSettings::getTunnelDirConns()
+   return value(SETTING_TUNNEL_DIR_CONNS).toBool();
+ }
+ 
++/** Returns true if no real bridges are configured. */
++bool
++NetworkSettings::noRealBridges() {
++  /* Regexp matches loopback on any port */
++  QRegExp bogusBridge("^127(\\.\\d{1,3}){3}:\\d{1,5}$");
++  QStringList bridges = localValue(SETTING_BRIDGE_LIST).toStringList();
++
++  QStringListIterator it(bridges);
++  while (it.hasNext())
++    if (!it.next().contains(bogusBridge))
++      return false;
++
++  return true;
++}
++
+ /** Converts the ProxyType <b>type</b> to a string to store in the
+  * configuration file. */
+ QString
+diff --git a/src/vidalia/config/NetworkSettings.h b/src/vidalia/config/NetworkSettings.h
+index aa5d88a..94f9196 100644
+--- a/src/vidalia/config/NetworkSettings.h
++++ b/src/vidalia/config/NetworkSettings.h
+@@ -97,6 +97,9 @@ public:
+    * connections through a one-hop circuit. */
+   bool getTunnelDirConns();
+ 
++  /** Returns true if no real bridges are configured. */
++  bool noRealBridges();
++
+ private:
+   /** Converts the ProxyType <b>type</b> to a string to store in the
+    * configuration file. */

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-privacy/packages/vidalia.git



More information about the Pkg-privacy-commits mailing list