12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import struct
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)from mod_pywebsocket import handshake
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)from mod_pywebsocket import stream
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)def web_socket_do_extra_handshake(_request):
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  pass
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)def web_socket_transfer_data(request):
16effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  # Just waiting...
17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  request.ws_stream.receive_message()
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)def web_socket_passive_closing_handshake(request):
21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  code = struct.pack('!H', 3004)
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  packet = stream.create_close_frame(code + 'split test'.encode('utf-8'))
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  request.connection.write(packet[:1])
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  request.connection.write(packet[1:])
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  raise handshake.AbortedByUserException('Abort the connection')
26