old_contents: # 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 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 line == '-':
      data = ''
    elif line == '--':
      data = 'X'
    else:
      code, reason = line.split(' ', 1)
      data = struct.pack('!H', int(code)) + reason.encode('utf-8')
    request.connection.write(stream.create_close_frame(data))
  
new_contents: # 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 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 line == '-':
      data = ''
    elif line == '--':
      data = 'X'
    else:
      code, reason = line.split(' ', 1)
      data = struct.pack('!H', int(code)) + reason.encode('utf-8')
    request.connection.write(stream.create_close_frame(data))
    request.server_terminated = True
    # Wait for Close frame from client.
    request.ws_stream.receive_message()
  
subject: Update net/data/websocket/close-code-and-reason_wsh.py