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.

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

mercurial