commit 9df66b15b1385a6fd314a4f4d9954ab54832f813 Author: Arlo Breault arlolra@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