Tue, 06 Jan 2015 21:39:09 +0100
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 |