def test_server_handshake_headers(self): h = websockets.server_handshake_headers('some-key') assert h['sec-websocket-accept'] == '8iILEZtcVdtFD7MDlPKip9ec9nw=' assert 'sec-websocket-protocol' not in h assert 'sec-websocket-extensions' not in h h = websockets.server_handshake_headers('some-key', 'foobar', 'foo; bar') assert h['sec-websocket-accept'] == '8iILEZtcVdtFD7MDlPKip9ec9nw=' assert h['sec-websocket-protocol'] == 'foobar' assert h['sec-websocket-extensions'] == 'foo; bar'
def resolve(self, settings, msg=None): tokens = self.tokens[:] if self.ws: if not settings.websocket_key: raise RenderError( "No websocket key - have we seen a client handshake?") if not self.code: tokens.insert(1, Code(101)) hdrs = websockets.server_handshake_headers(settings.websocket_key) for i in hdrs.lst: if not utils.get_header(i[0], self.headers): tokens.append( Header(ValueLiteral(i[0]), ValueLiteral(i[1]))) if not self.raw: if not utils.get_header("Content-Length", self.headers): if not self.body: length = 0 else: length = len(self.body.value.get_generator(settings)) tokens.append( Header( ValueLiteral("Content-Length"), ValueLiteral(str(length)), )) intermediate = self.__class__(tokens) return self.__class__( [i.resolve(settings, intermediate) for i in tokens])
def resolve(self, settings, msg=None): tokens = self.tokens[:] if self.ws: if not settings.websocket_key: raise RenderError( "No websocket key - have we seen a client handshake?" ) if not self.code: tokens.insert( 1, Code(101) ) hdrs = websockets.server_handshake_headers(settings.websocket_key) for i in hdrs.lst: if not utils.get_header(i[0], self.headers): tokens.append( Header(ValueLiteral(i[0]), ValueLiteral(i[1])) ) if not self.raw: if not utils.get_header("Content-Length", self.headers): if not self.body: length = 0 else: length = len(self.body.value.get_generator(settings)) tokens.append( Header( ValueLiteral("Content-Length"), ValueLiteral(str(length)), ) ) intermediate = self.__class__(tokens) return self.__class__( [i.resolve(settings, intermediate) for i in tokens] )
def handshake(self): req = http.read_request(self.rfile) key = websockets.check_client_handshake(req.headers) self.wfile.write(http.response_preamble(101) + "\r\n") headers = websockets.server_handshake_headers(key) self.wfile.write(headers.format() + "\r\n") self.wfile.flush() self.handshake_done = True
def handshake(self): req = http.read_request(self.rfile) key = websockets.check_client_handshake(req.headers) self.wfile.write(http.response_preamble(101) + "\r\n") headers = websockets.server_handshake_headers(key) self.wfile.write(headers.format() + "\r\n") self.wfile.flush() self.handshake_done = True
def test_check_server_handshake(self): headers = websockets.server_handshake_headers("key") assert websockets.check_server_handshake(headers) headers["Upgrade"] = ["not_websocket"] assert not websockets.check_server_handshake(headers)
def test_check_server_handshake(self): headers = websockets.server_handshake_headers("key") assert websockets.check_server_handshake(headers) headers["Upgrade"] = ["not_websocket"] assert not websockets.check_server_handshake(headers)