content/base/test/file_websocket_basic_wsh.py

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

michael@0 1 from mod_pywebsocket import msgutil
michael@0 2
michael@0 3 def web_socket_do_extra_handshake(request):
michael@0 4 # must set request.ws_protocol to the selected version from ws_requested_protocols
michael@0 5 request.ws_protocol = request.ws_requested_protocols[0]
michael@0 6
michael@0 7 if (request.ws_protocol == 'error'):
michael@0 8 raise ValueError('Error')
michael@0 9 pass
michael@0 10
michael@0 11 def web_socket_transfer_data(request):
michael@0 12 while True:
michael@0 13 line = msgutil.receive_message(request)
michael@0 14 if line == 'protocol':
michael@0 15 msgutil.send_message(request, request.ws_protocol)
michael@0 16 continue
michael@0 17
michael@0 18 if line == 'resource':
michael@0 19 msgutil.send_message(request, request.ws_resource)
michael@0 20 continue
michael@0 21
michael@0 22 if line == 'origin':
michael@0 23 msgutil.send_message(request, request.ws_origin)
michael@0 24 continue
michael@0 25
michael@0 26 msgutil.send_message(request, line)
michael@0 27
michael@0 28 if line == 'end':
michael@0 29 return

mercurial