def handshake(self): client_hs = http.read_request(self.rfile) websockets.check_client_handshake(client_hs.headers) self.wfile.write(http.response_preamble(101) + "\r\n") headers = websockets.server_handshake_headers("malformed key") self.wfile.write(headers.format() + "\r\n") self.wfile.flush() self.handshake_done = True
def test_check_client_handshake(self): headers = websockets.client_handshake_headers("key") assert websockets.check_client_handshake(headers) == "key" headers["Upgrade"] = ["not_websocket"] assert not websockets.check_client_handshake(headers)
s = str(s) self.info(s) self.addlog(dict(type="error", msg=s)) return False for i in self.server.anchors: if i[0].match(path): self.info("crafting anchor: %s" % path) again, retlog["response"] = self.serve_crafted(i[1]) self.addlog(retlog) return again if not self.server.nocraft and utils.matchpath( path, self.server.craftanchor): spec = urllib.unquote(path)[len(self.server.craftanchor) + 1:] key = websockets.check_client_handshake(headers) self.settings.websocket_key = key if key and not spec: spec = "ws" self.info("crafting spec: %s" % spec) try: crafted = language.parse_response(spec) except language.ParseException, v: self.info("Parse error: %s" % v.msg) crafted = language.make_error_response( "Parse Error", "Error parsing response spec: %s\n" % v.msg + v.marked()) again, retlog["response"] = self.serve_crafted(crafted) self.addlog(retlog) return again elif self.server.noweb:
except http.HttpError, s: s = str(s) self.info(s) self.addlog(dict(type="error", msg=s)) return False for i in self.server.anchors: if i[0].match(path): self.info("crafting anchor: %s" % path) again, retlog["response"] = self.serve_crafted(i[1]) self.addlog(retlog) return again if not self.server.nocraft and utils.matchpath(path, self.server.craftanchor): spec = urllib.unquote(path)[len(self.server.craftanchor) + 1:] key = websockets.check_client_handshake(headers) self.settings.websocket_key = key if key and not spec: spec = "ws" self.info("crafting spec: %s" % spec) try: crafted = language.parse_response(spec) except language.ParseException, v: self.info("Parse error: %s" % v.msg) crafted = language.make_error_response( "Parse Error", "Error parsing response spec: %s\n" % v.msg + v.marked() ) again, retlog["response"] = self.serve_crafted(crafted) self.addlog(retlog) return again