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

[vidalia-svn] r3776: Don't start discarding Tor's output on stdout until after Vi (vidalia/trunk/src/torcontrol)



Author: edmanm
Date: 2009-05-16 23:47:56 -0400 (Sat, 16 May 2009)
New Revision: 3776

Modified:
   vidalia/trunk/src/torcontrol/TorControl.cpp
Log:

Don't start discarding Tor's output on stdout until after Vidalia has
successfully registered for log events, instead of after we've just
authenticated.


Modified: vidalia/trunk/src/torcontrol/TorControl.cpp
===================================================================
--- vidalia/trunk/src/torcontrol/TorControl.cpp	2009-05-17 03:43:53 UTC (rev 3775)
+++ vidalia/trunk/src/torcontrol/TorControl.cpp	2009-05-17 03:47:56 UTC (rev 3776)
@@ -253,11 +253,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();
 }
 
@@ -617,7 +613,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 */