tor-browser

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

echo_wsh.py (1177B)


      1 #!/usr/bin/python
      2 
      3 from pywebsocket3 import common
      4 
      5 _GOODBYE_MESSAGE = u'Goodbye'
      6 
      7 def web_socket_do_extra_handshake(request):
      8    # This example handler accepts any request. See origin_check_wsh.py for how
      9    # to reject access from untrusted scripts based on origin value.
     10    if request.ws_requested_protocols:
     11        if "echo" in request.ws_requested_protocols:
     12            request.ws_protocol = "echo"
     13 
     14 
     15 def web_socket_transfer_data(request):
     16    while True:
     17        line = request.ws_stream.receive_message()
     18        if line is None:
     19            return
     20        if isinstance(line, str):
     21            request.ws_stream.send_message(line, binary=False)
     22            if line == _GOODBYE_MESSAGE:
     23                return
     24        else:
     25            request.ws_stream.send_message(line, binary=True)
     26 
     27 def web_socket_passive_closing_handshake(request):
     28    # Echo close status code and reason
     29    code, reason = request.ws_close_code, request.ws_close_reason
     30 
     31    # No status received is a reserved pseudo code representing an empty code,
     32    # so echo back an empty code in this case.
     33    if code == common.STATUS_NO_STATUS_RECEIVED:
     34        code = None
     35 
     36    return code, reason