1*6777b538SAndroid Build Coastguard Worker# Copyright 2014 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker# 5*6777b538SAndroid Build Coastguard Worker# This handler serializes the received headers into a JSON string and sends it 6*6777b538SAndroid Build Coastguard Worker# back to the client. In |headers_in|, the keys are converted to lower-case, 7*6777b538SAndroid Build Coastguard Worker# while the original case is retained for the values. 8*6777b538SAndroid Build Coastguard Worker 9*6777b538SAndroid Build Coastguard Workerimport json 10*6777b538SAndroid Build Coastguard Workerfrom mod_pywebsocket import msgutil 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Workerdef web_socket_do_extra_handshake(request): 14*6777b538SAndroid Build Coastguard Worker pass 15*6777b538SAndroid Build Coastguard Worker 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Workerdef web_socket_transfer_data(request): 18*6777b538SAndroid Build Coastguard Worker # Since python 3 does not lowercase the dictionary key, manually lower all 19*6777b538SAndroid Build Coastguard Worker # keys to maintain python 2/3 compatibility 20*6777b538SAndroid Build Coastguard Worker lowered_dict = { 21*6777b538SAndroid Build Coastguard Worker header.lower(): value for header, value in request.headers_in.items() 22*6777b538SAndroid Build Coastguard Worker } 23*6777b538SAndroid Build Coastguard Worker msgutil.send_message(request, json.dumps(lowered_dict)) 24*6777b538SAndroid Build Coastguard Worker # Wait for closing handshake 25*6777b538SAndroid Build Coastguard Worker request.ws_stream.receive_message() 26