[tor-commits] [snowflake/master] Clear ws connection timeout on success/failure

arlo at torproject.org arlo at torproject.org
Wed May 11 01:47:51 UTC 2016


commit 81931fa8e7c64b8bb520180b6c2e8889835156c8
Author: Arlo Breault <arlolra at gmail.com>
Date:   Tue May 10 18:46:49 2016 -0700

    Clear ws connection timeout on success/failure
    
     * Follow up to 14fc6a13
---
 proxy/proxypair.coffee | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/proxy/proxypair.coffee b/proxy/proxypair.coffee
index b14ec51..6471f3a 100644
--- a/proxy/proxypair.coffee
+++ b/proxy/proxypair.coffee
@@ -15,6 +15,7 @@ class ProxyPair
   r2cSchedule: []
   client:      null  # WebRTC Data channel
   relay:       null   # websocket
+  timer:       0
   running:     true
   active:      false  # Whether serving a client.
   flush_timeout_id: null
@@ -90,6 +91,9 @@ class ProxyPair
     @relay = makeWebsocket @relayAddr
     @relay.label = 'websocket-relay'
     @relay.onopen = =>
+      if @timer
+          clearTimeout @timer
+          @timer = 0
       log @relay.label + ' connected!'
       snowflake.ui.setStatus 'connected'
     @relay.onclose = =>
@@ -102,7 +106,7 @@ class ProxyPair
     @relay.onerror = @onError
     @relay.onmessage = @onRelayToClientMessage
     # TODO: Better websocket timeout handling.
-    setTimeout((=>
+    @timer = setTimeout((=>
       log @relay.label + ' timed out connecting.'
       @relay.onclose()), 5000)
 
@@ -132,6 +136,9 @@ class ProxyPair
 
   # Close both WebRTC and websocket.
   close: ->
+    if @timer
+      clearTimeout @timer
+      @timer = 0
     @running = false
     @client.close() if @webrtcIsReady()
     @relay.close() if @relayIsReady()



More information about the tor-commits mailing list