tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

file_websocket_permessage_deflate_params_wsh.py (863B)


      1 from mod_pywebsocket import common, msgutil
      2 
      3 
      4 def web_socket_do_extra_handshake(request):
      5    deflate_found = False
      6 
      7    if request.ws_extension_processors is not None:
      8        for extension_processor in request.ws_extension_processors:
      9            if extension_processor.name() == "deflate":
     10                extension_processor.set_client_no_context_takeover(True)
     11                deflate_found = True
     12 
     13    if deflate_found is False:
     14        raise ValueError("deflate extension processor not found")
     15 
     16 
     17 def web_socket_transfer_data(request):
     18    while True:
     19        rcvd = msgutil.receive_message(request)
     20        opcode = request.ws_stream.get_last_received_opcode()
     21        if opcode == common.OPCODE_BINARY:
     22            msgutil.send_message(request, rcvd, binary=True)
     23        elif opcode == common.OPCODE_TEXT:
     24            msgutil.send_message(request, rcvd)