[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