[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[vidalia-svn] r2771: Whine about bootstrap problem events only if their recommand (in vidalia/trunk/src: torcontrol vidalia)



Author: edmanm
Date: 2008-06-20 19:25:20 -0400 (Fri, 20 Jun 2008)
New Revision: 2771

Modified:
   vidalia/trunk/src/torcontrol/bootstrapstatusevent.cpp
   vidalia/trunk/src/torcontrol/bootstrapstatusevent.h
   vidalia/trunk/src/torcontrol/torevents.cpp
   vidalia/trunk/src/vidalia/mainwindow.cpp
Log:
Whine about bootstrap problem events only if their recommandation is not
'ignore'.


Modified: vidalia/trunk/src/torcontrol/bootstrapstatusevent.cpp
===================================================================
--- vidalia/trunk/src/torcontrol/bootstrapstatusevent.cpp	2008-06-20 22:35:32 UTC (rev 2770)
+++ vidalia/trunk/src/torcontrol/bootstrapstatusevent.cpp	2008-06-20 23:25:20 UTC (rev 2771)
@@ -23,7 +23,8 @@
                                            int percentComplete,
                                            const QString &description,
                                            const QString &warning,
-                                           tc::ConnectionStatusReason reason)
+                                           tc::ConnectionStatusReason reason,
+                                           RecommendAction action)
   : ClientStatusEvent(severity, ClientStatusEvent::BootstrapStatus)
 {
   _status = status;
@@ -31,6 +32,7 @@
   _description = description;
   _warning = warning;
   _reason = reason;
+  _action = action;
 }
 
 /** Converts a string TAG value to a BootstrapStatus enum value. */
@@ -64,3 +66,13 @@
   return UnrecognizedStatus;
 }
 
+BootstrapStatusEvent::RecommendAction
+BootstrapStatusEvent::actionFromString(const QString &str)
+{
+  if (!str.compare("WARN", Qt::CaseInsensitive))
+    return RecommendWarn;
+  if (!str.compare("IGNORE", Qt::CaseInsensitive))
+    return RecommendIgnore;
+  return UnrecognizedAction;
+}
+

Modified: vidalia/trunk/src/torcontrol/bootstrapstatusevent.h
===================================================================
--- vidalia/trunk/src/torcontrol/bootstrapstatusevent.h	2008-06-20 22:35:32 UTC (rev 2770)
+++ vidalia/trunk/src/torcontrol/bootstrapstatusevent.h	2008-06-20 23:25:20 UTC (rev 2771)
@@ -43,13 +43,21 @@
     EstablishingCircuit,
     BootstrappingDone
   };
+  /** Actions the Tor software might recommend controllers take in response to
+   * a bootstrap status problem event. */
+  enum RecommendAction {
+    UnrecognizedAction,
+    RecommendIgnore,
+    RecommendWarn
+  };
 
   /** Constructor. */
   BootstrapStatusEvent(StatusEvent::Severity severity,
                        BootstrapStatus status, int percentComplete,
                        const QString &description,
                        const QString &warning = QString(),
-                       tc::ConnectionStatusReason reason = tc::UnrecognizedReason);
+                       tc::ConnectionStatusReason reason = tc::UnrecognizedReason,
+                       RecommendAction action = UnrecognizedAction);
 
   /** Returns the BootstrapStatus enum value indicated by this bootstrap
    * status event. */
@@ -73,8 +81,15 @@
    * tc::UnrecognizedReason. */
   tc::ConnectionStatusReason reason() const { return _reason; }
 
+  /** Returns the action that the Tor software recommended be taken in
+   * response to this bootstrap status event. */ 
+  RecommendAction recommendedAction() const { return _action; }
+
   /** Converts a string TAG value to a BootstrapStatus enum value. */
   static BootstrapStatus statusFromString(const QString &tag);
+  /** Converts a string RECOMMENDATION value to a RecommendAction enum
+   * value. */
+  static RecommendAction actionFromString(const QString &str);
 
 private:
   /** Current bootstrapping status value.
@@ -103,6 +118,12 @@
    * \sa reason
    */
   tc::ConnectionStatusReason _reason;
+
+  /** RecommendAction enum value describing Tor's suggested response to this
+   * bootstrap status event.
+   * \sa recommendedAction
+   */
+  RecommendAction _action;
 };
 
 #endif

Modified: vidalia/trunk/src/torcontrol/torevents.cpp
===================================================================
--- vidalia/trunk/src/torcontrol/torevents.cpp	2008-06-20 22:35:32 UTC (rev 2770)
+++ vidalia/trunk/src/torcontrol/torevents.cpp	2008-06-20 23:25:20 UTC (rev 2771)
@@ -412,7 +412,9 @@
                     args.value("PROGRESS").toInt(),
                     args.value("SUMMARY"),
                     args.value("WARNING"),
-                    tc::connectionStatusReason(args.value("REASON")));
+                    tc::connectionStatusReason(args.value("REASON")),
+                    BootstrapStatusEvent::actionFromString(
+                      args.value("RECOMMENDATION")));
       break;
 
     default:

Modified: vidalia/trunk/src/vidalia/mainwindow.cpp
===================================================================
--- vidalia/trunk/src/vidalia/mainwindow.cpp	2008-06-20 22:35:32 UTC (rev 2770)
+++ vidalia/trunk/src/vidalia/mainwindow.cpp	2008-06-20 23:25:20 UTC (rev 2771)
@@ -525,7 +525,8 @@
 MainWindow::bootstrapStatusChanged(const BootstrapStatusEvent *bse)
 {
   int percentComplete = STARTUP_PROGRESS_BOOTSTRAPPING + bse->percentComplete();
-  bool warn = (bse->severity() == StatusEvent::SeverityWarn);
+  bool warn = (bse->severity() == StatusEvent::SeverityWarn && 
+               bse->recommendedAction() != BootstrapStatusEvent::RecommendIgnore);
 
   QString description;
   switch (bse->status()) {