Пример #1
0
    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'
Пример #2
0
 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])
Пример #3
0
 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]
     )
Пример #4
0
    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
Пример #5
0
    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
Пример #6
0
 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)
Пример #7
0
 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)