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

[vidalia-svn] r3777: Backport r3776. (in vidalia/branches/vidalia-0.1: . src/torcontrol)



Author: edmanm
Date: 2009-05-17 00:18:13 -0400 (Sun, 17 May 2009)
New Revision: 3777

Modified:
   vidalia/branches/vidalia-0.1/CHANGELOG
   vidalia/branches/vidalia-0.1/src/torcontrol/torcontrol.cpp
Log:

Backport r3776.


Modified: vidalia/branches/vidalia-0.1/CHANGELOG
===================================================================
--- vidalia/branches/vidalia-0.1/CHANGELOG	2009-05-17 03:47:56 UTC (rev 3776)
+++ vidalia/branches/vidalia-0.1/CHANGELOG	2009-05-17 04:18:13 UTC (rev 3777)
@@ -15,6 +15,11 @@
     trick on Debian there too.
   o If a RouterDescriptor object is empty, don't try to display it in the
     router descriptor details viewer. (Ticket #479)
+  o Wait until Vidalia has registered for log events via the control port
+    before ignoring Tor's output on stdout. Previously we would start
+    ignoring Tor's stdout after successfully authenticating, but before
+    registering for log events which, in some cases, could lead to
+    messages not appearing in the message log.
 
 
 0.1.12  16-Mar-2009

Modified: vidalia/branches/vidalia-0.1/src/torcontrol/torcontrol.cpp
===================================================================
--- vidalia/branches/vidalia-0.1/src/torcontrol/torcontrol.cpp	2009-05-17 03:47:56 UTC (rev 3776)
+++ vidalia/branches/vidalia-0.1/src/torcontrol/torcontrol.cpp	2009-05-17 04:18:13 UTC (rev 3777)
@@ -282,11 +282,7 @@
   getInfo("version", _torVersion);
   /* We want to use verbose names in events and GETINFO results. */
   useFeature("VERBOSE_NAMES");
-
-  /* The control socket is connected, so we can stop reading from stdout */
-  if (_torProcess)
-    _torProcess->closeStdout();
-  
+ 
   emit authenticated();
 }
 
@@ -646,7 +642,16 @@
   setEvent(TorEvents::LogNotice, obj, filter & LogEvent::Notice, false);
   setEvent(TorEvents::LogInfo  , obj, filter & LogEvent::Info  , false);
   setEvent(TorEvents::LogDebug , obj, filter & LogEvent::Debug , false);
-  return (isConnected() ? setEvents(errmsg) : true);
+
+  if (isConnected()) {
+    bool rc = setEvents(errmsg);
+    if (rc && _torProcess)
+      /* The control socket is connected and the request for log events from
+       * the control port was successful, so we can stop reading from stdout. */
+      _torProcess->closeStdout();
+    return rc;
+  }
+  return true;
 }
 
 /** Register for the events currently in the event list */


Property changes on: vidalia/branches/vidalia-0.1/src/torcontrol/torcontrol.cpp
___________________________________________________________________
Added: svn:mergeinfo
   + /vidalia/trunk/cmake/src/torcontrol/torcontrol.cpp:3745
/vidalia/trunk/src/torcontrol/TorControl.cpp:3776
/vidalia/trunk/src/torcontrol/torcontrol.cpp:3235,3482,3504-3505,3516-3517,3519-3520,3522,3524-3526,3528,3530,3732,3740,3745