[tor-commits] [torbutton/master] Bug 8642: Fix a hang on New Identity.

mikeperry at torproject.org mikeperry at torproject.org
Mon Apr 22 23:30:44 UTC 2013


commit ad4e95564a049429ff5fd86f3cddb25fd3c03e12
Author: Mike Perry <mikeperry-git at fscked.org>
Date:   Thu Apr 4 18:34:04 2013 -0700

    Bug 8642: Fix a hang on New Identity.
    
    Buffering is likely eating our commands, causing us to wait forever for
    responses.. Let's hope setting the buffer size and counts to 1 each will do
    the trick :/.
---
 src/chrome/content/torbutton.js |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 0034e1a..f8b25d1 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -1245,8 +1245,12 @@ function torbutton_send_ctrl_cmd(command) {
     var socketTransportService = Components.classes["@mozilla.org/network/socket-transport-service;1"]
         .getService(Components.interfaces.nsISocketTransportService);
     var socket = socketTransportService.createTransport(null, 0, m_tb_control_host, m_tb_control_port, null);
-    var input = socket.openInputStream(3, 0, 0); // 3 == OPEN_BLOCKING|OPEN_UNBUFFERED
-    var output = socket.openOutputStream(3, 0, 0); // 3 == OPEN_BLOCKING|OPEN_UNBUFFERED
+
+    // If we don't get a response from the control port in 2 seconds, someting is wrong..
+    socket.setTimeout(Ci.nsISocketTransport.TIMEOUT_READ_WRITE, 2);
+
+    var input = socket.openInputStream(3, 1, 1); // 3 == OPEN_BLOCKING|OPEN_UNBUFFERED
+    var output = socket.openOutputStream(3, 1, 1); // 3 == OPEN_BLOCKING|OPEN_UNBUFFERED
 
     var inputStream     = Cc["@mozilla.org/binaryinputstream;1"].createInstance(Ci.nsIBinaryInputStream);
     var outputStream    = Cc["@mozilla.org/binaryoutputstream;1"].createInstance(Ci.nsIBinaryOutputStream);





More information about the tor-commits mailing list