1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 # The purpose of this test is to verify that WebSocket supports header
6 # continuations, as deprecated in RFC7230 section 3.2.4.
7 # It is used by test case WebSocketEndToEndTest.HeaderContinuations.
9 from mod_pywebsocket
import handshake
10 from mod_pywebsocket
.handshake
.hybi
import compute_accept
13 def web_socket_do_extra_handshake(request
):
14 accept
= compute_accept(request
.headers_in
['Sec-WebSocket-Key'])[0]
15 message
= ('HTTP/1.1 101 Switching Protocols\r\n'
16 'Upgrade: websocket\r\n'
17 'Connection: Upgrade\r\n'
18 'Sec-WebSocket-Accept: %s\r\n'
19 'Sec-WebSocket-Extensions: permessage-deflate;\r\n'
20 ' server_max_window_bits=10\r\n'
22 request
.connection
.write(message
)
23 # Prevent pywebsocket from sending its own handshake message.
24 raise handshake
.AbortedByUserException('Close the connection')
27 def web_socket_transfer_data(request
):