Index: net/data/websocket/close-with-split-packet_wsh.py |
diff --git a/net/data/websocket/close-with-split-packet_wsh.py b/net/data/websocket/close-with-split-packet_wsh.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d5185c4114bc4e4eb2cb2124691b7dd518e9532b |
--- /dev/null |
+++ b/net/data/websocket/close-with-split-packet_wsh.py |
@@ -0,0 +1,30 @@ |
+# Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+import struct |
+ |
+from mod_pywebsocket import handshake |
+from mod_pywebsocket import stream |
+ |
+ |
+def web_socket_do_extra_handshake(_request): |
+ pass |
+ |
+ |
+def web_socket_transfer_data(request): |
+ line = request.ws_stream.receive_message() |
+ if line is None: |
+ return |
+ if isinstance(line, unicode): |
+ request.ws_stream.send_message(line, binary=False) |
+ else: |
+ request.ws_stream.send_message(line, binary=True) |
+ |
+ |
+def web_socket_passive_closing_handshake(request): |
+ code = struct.pack('!H', 1000) |
+ packet = stream.create_close_frame(code + 'split test'.encode('utf-8')) |
+ request.connection.write(packet[:1]) |
+ request.connection.write(packet[1:]) |
+ raise handshake.AbortedByUserException('Abort the connection') |