[tor-commits] [snowflake/master] Make MODE a class constant

arlo at torproject.org arlo at torproject.org
Thu May 16 16:08:58 UTC 2019


commit 9df66b15b1385a6fd314a4f4d9954ab54832f813
Author: Arlo Breault <arlolra at gmail.com>
Date:   Wed May 8 13:24:37 2019 -0400

    Make MODE a class constant
---
 proxy/init.coffee                |  8 +-------
 proxy/proxypair.coffee           |  6 +++---
 proxy/snowflake.coffee           | 11 +++++++++--
 proxy/spec/snowflake.spec.coffee | 14 +++++++-------
 4 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/proxy/init.coffee b/proxy/init.coffee
index 22d4315..d3101c3 100644
--- a/proxy/init.coffee
+++ b/proxy/init.coffee
@@ -29,12 +29,6 @@ config = {
   ]
 }
 
-# Janky state machine
-MODE =
-  INIT:              0
-  WEBRTC_CONNECTING: 1
-  WEBRTC_READY:      2
-
 CONFIRMATION_MESSAGE = 'You\'re currently serving a Tor user via Snowflake.'
 
 snowflake = null
@@ -80,7 +74,7 @@ init = () ->
 
 # Notification of closing tab with active proxy.
 window.onbeforeunload = ->
-  if !silenceNotifications && MODE.WEBRTC_READY == snowflake.state
+  if !silenceNotifications && Snowflake.MODE.WEBRTC_READY == snowflake.state
     return CONFIRMATION_MESSAGE
   null
 
diff --git a/proxy/proxypair.coffee b/proxy/proxypair.coffee
index 5a11f9a..da45784 100644
--- a/proxy/proxypair.coffee
+++ b/proxy/proxypair.coffee
@@ -68,7 +68,7 @@ class ProxyPair
   prepareDataChannel: (channel) =>
     channel.onopen = =>
       log 'WebRTC DataChannel opened!'
-      snowflake.state = MODE.WEBRTC_READY
+      snowflake.state = Snowflake.MODE.WEBRTC_READY
       snowflake.ui?.setActive true
       # This is the point when the WebRTC datachannel is done, so the next step
       # is to establish websocket to the server.
@@ -77,7 +77,7 @@ class ProxyPair
       log 'WebRTC DataChannel closed.'
       snowflake.ui?.setStatus 'disconnected by webrtc.'
       snowflake.ui?.setActive false
-      snowflake.state = MODE.INIT
+      snowflake.state = Snowflake.MODE.INIT
       @flush()
       @close()
       # TODO: Change this for multiplexing.
@@ -114,7 +114,7 @@ class ProxyPair
       log @relay.label + ' closed.'
       snowflake.ui?.setStatus 'disconnected.'
       snowflake.ui?.setActive false
-      snowflake.state = MODE.INIT
+      snowflake.state = Snowflake.MODE.INIT
       @flush()
       @close()
     @relay.onerror = @onError
diff --git a/proxy/snowflake.coffee b/proxy/snowflake.coffee
index 1cf6582..07c90c6 100644
--- a/proxy/snowflake.coffee
+++ b/proxy/snowflake.coffee
@@ -14,11 +14,18 @@ class Snowflake
   relayAddr:  null
   proxyPairs: []
   rateLimit:  null
-  state:      MODE.INIT
   retries:    0
 
+  # Janky state machine
+  @MODE =
+    INIT:              0
+    WEBRTC_CONNECTING: 1
+    WEBRTC_READY:      2
+
   # Prepare the Snowflake with a Broker (to find clients) and optional UI.
   constructor: (@broker, @ui) ->
+    @state = Snowflake.MODE.INIT
+
     rateLimitBytes = undefined
     if 'off' != query['ratelimit']
       rateLimitBytes = Params.getByteCount(query, 'ratelimit',
@@ -41,7 +48,7 @@ class Snowflake
   # Initialize WebRTC PeerConnection, which requires beginning the signalling
   # process. |pollBroker| automatically arranges signalling.
   beginWebRTC: ->
-    @state = MODE.WEBRTC_CONNECTING
+    @state = Snowflake.MODE.WEBRTC_CONNECTING
     for i in [1..CONNECTIONS_PER_CLIENT]
       @makeProxyPair @relayAddr
     log 'ProxyPair Slots: ' + @proxyPairs.length
diff --git a/proxy/spec/snowflake.spec.coffee b/proxy/spec/snowflake.spec.coffee
index 8c11a22..6986883 100644
--- a/proxy/spec/snowflake.spec.coffee
+++ b/proxy/spec/snowflake.spec.coffee
@@ -25,7 +25,7 @@ snowflake =
   ui: fakeUI
   broker:
     sendAnswer: ->
-  state: MODE.INIT
+  state: Snowflake.MODE.INIT
 
 describe 'Snowflake', ->
 
@@ -72,19 +72,19 @@ describe 'Snowflake', ->
 
   it 'gives a dialog when closing, only while active', ->
     silenceNotifications = false
-    snowflake.state = MODE.WEBRTC_READY
+    snowflake.state = Snowflake.MODE.WEBRTC_READY
     msg = window.onbeforeunload()
-    expect(snowflake.state).toBe MODE.WEBRTC_READY
+    expect(snowflake.state).toBe Snowflake.MODE.WEBRTC_READY
     expect(msg).toBe CONFIRMATION_MESSAGE
 
-    snowflake.state = MODE.INIT
+    snowflake.state = Snowflake.MODE.INIT
     msg = window.onbeforeunload()
-    expect(snowflake.state).toBe MODE.INIT
+    expect(snowflake.state).toBe Snowflake.MODE.INIT
     expect(msg).toBe null
 
   it 'does not give a dialog when silent flag is on', ->
     silenceNotifications = true
-    snowflake.state = MODE.WEBRTC_READY
+    snowflake.state = Snowflake.MODE.WEBRTC_READY
     msg = window.onbeforeunload()
-    expect(snowflake.state).toBe MODE.WEBRTC_READY
+    expect(snowflake.state).toBe Snowflake.MODE.WEBRTC_READY
     expect(msg).toBe null





More information about the tor-commits mailing list