commit 4ca2f2e70974fff095f01964d80ef271c1d55543 Author: David Fifield david@bamsoftware.com Date: Thu Apr 19 14:31:14 2012 -0700
Add a websockify patch to assume binary frames in the absence of "base64".
Otherwise websockify just terminates the connection unless the subprotocol is "base64" or "binary". --- README | 2 ++ patches/websockify-binary-default.patch | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/README b/README index e9917e4..5aa054f 100644 --- a/README +++ b/README @@ -118,6 +118,7 @@ re-register:
The relay runs with a WebSocket proxy in external proxy mode. git clone git://github.com/kanaka/websockify.git + git apply ~/flashproxy/patches/websockify-binary-default.patch This command proxies WebSocket on port 9901 to a local ORPort on 9001. ./websockify :9901 127.0.0.1:9001 The init.d script described under "Installing so as to restart at boot" @@ -160,6 +161,7 @@ CentOS. "make install" copies files to /usr/local/bin. # service facilitator start
# cd websockify + # git apply ~/flashproxy/patches/websockify-binary-default.patch # cp websockify websocket.py /usr/local/bin # useradd -d /dev/null -s /bin/false websockify # mkdir /var/websockify diff --git a/patches/websockify-binary-default.patch b/patches/websockify-binary-default.patch new file mode 100644 index 0000000..9ba7f06 --- /dev/null +++ b/patches/websockify-binary-default.patch @@ -0,0 +1,26 @@ +From 066c665c2e437a399e2fd0b55394b0ec82c7aeab Mon Sep 17 00:00:00 2001 +From: David Fifield david@bamsoftware.com +Date: Thu, 19 Apr 2012 14:16:16 -0700 +Subject: [PATCH] Assume binary transfer when no subprotocol is given. + +--- + websocket.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/websocket.py b/websocket.py +index 646160c..d6cea57 100644 +--- a/websocket.py ++++ b/websocket.py +@@ -660,7 +660,8 @@ Sec-WebSocket-Accept: %s\r + elif 'base64' in protocols: + self.base64 = True + else: +- raise self.EClose("Client must support 'binary' or 'base64' protocol") ++ self.base64 = False ++ # raise self.EClose("Client must support 'binary' or 'base64' protocol") + + # Generate the hash value for the accept header + accept = b64encode(sha1(s2b(key + self.GUID)).digest()) +-- +1.7.9.5 +
tor-commits@lists.torproject.org