summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/websockets/handlers/delayed-passive-close_wsh.py
blob: 7d55b88ecc6db7fd9d3fb7a9722e030d926c807d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/python
from mod_pywebsocket import common
import time

def web_socket_do_extra_handshake(request):
    pass


def web_socket_transfer_data(request):
    # Wait for the close frame to arrive.
    request.ws_stream.receive_message()


def web_socket_passive_closing_handshake(request):
    # Echo close status code and reason
    code, reason = request.ws_close_code, request.ws_close_reason

    # No status received is a reserved pseudo code representing an empty code,
    # so echo back an empty code in this case.
    if code == common.STATUS_NO_STATUS_RECEIVED:
        code = None

    # The browser may error the connection if the closing handshake takes too
    # long, but hopefully no browser will have a timeout this short.
    time.sleep(1)

    return code, reason