def web_socket_do_extra_handshake(request): message = 'HTTP/1.0 101 Switching Protocols\r\n' message += 'Upgrade: websocket\r\n' message += 'Connection: Upgrade\r\n' message += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept(request.headers_in['Sec-WebSocket-Key'])[0] message += '\r\n' request.connection.write(message) raise handshake.AbortedByUserException('Abort the connection') # Prevents pywebsocket from sending its own handshake message.
def web_socket_do_extra_handshake(request): message = 'HTTP/3.0 101 Switching Protocols\r\n' message += 'Upgrade: websocket\r\n' message += 'Connection: Upgrade\r\n' message += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept(request.headers_in['Sec-WebSocket-Key'])[0] message += '\r\n' request.connection.write(message) raise handshake.AbortedByUserException('Abort the connection') # Prevents pywebsocket from sending its own handshake message.
def web_socket_do_extra_handshake(request): request.connection.write( 'HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASet-Cookie: ws_test=test; Path=/; HttpOnly\x0D\x0ASec-WebSocket-Origin: ' + request.ws_origin + '\x0D\x0ASec-WebSocket-Accept: ' + hybi.compute_accept( request.headers_in.get(common.SEC_WEBSOCKET_KEY_HEADER))[0] + '\x0D\x0A\x0D\x0A') return
def web_socket_do_extra_handshake(request): request.connection.write( 'HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASet-Cookie: ws_test=test\x0D\x0ASec-WebSocket-Origin: ' + request.ws_origin + '\x0D\x0ASec-WebSocket-Accept: ' + hybi.compute_accept( request.headers_in.get( common.SEC_WEBSOCKET_KEY_HEADER))[0] + '\x0D\x0A\x0D\x0A') return
def web_socket_do_extra_handshake(request): msg = 'HTTP/1.1 101 Switching Protocols\n' # Does not end with "\r\n". msg += 'Upgrade: websocket\r\n' msg += 'Connection: Upgrade\r\n' msg += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept(request.headers_in['Sec-WebSocket-Key'])[0] msg += '\r\n' request.connection.write(msg) print msg # Prevents pywebsocket from sending its own handshake message. raise handshake.AbortedByUserException('Abort the connection')
def web_socket_do_extra_handshake(request): url_parts = urlparse.urlsplit(request.uri) request.connection.write( 'HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASet-Cookie: ws_test_' + (url_parts.query or '') + '=test; Path=/\x0D\x0ASec-WebSocket-Origin: ' + request.ws_origin + '\x0D\x0ASec-WebSocket-Accept: ' + hybi.compute_accept( request.headers_in.get(common.SEC_WEBSOCKET_KEY_HEADER))[0] + '\x0D\x0A\x0D\x0A') return
def web_socket_do_extra_handshake(request): msg = "HTTP/1.1 101 Switching Protocols\r\n" msg += "Upgrade: websocket\r\n" msg += "Connection: Upgrade\r\n" msg += "Sec-WebSocket-Accept: %s\r\n" % compute_accept(request.headers_in["Sec-WebSocket-Key"])[0] msg += "\xa5:\r\n" msg += "\r\n" request.connection.write(msg) print msg raise handshake.AbortedByUserException("Abort the connection") # Prevents pywebsocket from sending its own handshake message.
def web_socket_do_extra_handshake(request): msg = 'HTTP/1.1 101 Switching Protocols\r\n' msg += 'Upgrade: websocket\r\n' msg += 'Connection: Upgrade\r\n' msg += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept(request.headers_in['Sec-WebSocket-Key'])[0] msg += 'Sec-WebSocket-Extensions: x-webkit-deflate-frame\r\n' msg += 'Sec-WebSocket-Extensions: foo\r\n' msg += '\r\n' request.connection.write(msg) raise handshake.AbortedByUserException('Abort the connection') # Prevents pywebsocket from sending its own handshake message.
def web_socket_do_extra_handshake(request): # This will cause the handshake to fail because it pushes the length of the # status line past 1024 characters msg = '.' * 1024 msg += 'HTTP/1.1 101 Switching Protocols\r\n' msg += 'Upgrade: websocket\r\n' msg += 'Connection: Upgrade\r\n' msg += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept(request.headers_in['Sec-WebSocket-Key'])[0] msg += '\r\n' request.connection.write(msg) raise handshake.AbortedByUserException('abort the connection') # Prevents pywebsocket from sending its own handshake message.
def web_socket_do_extra_handshake(request): accept = compute_accept(request.headers_in['Sec-WebSocket-Key'])[0] message = ('HTTP/1.1 101 Switching Protocols\r\n' 'Upgrade: websocket\r\n' 'Connection: Upgrade\r\n' 'Sec-WebSocket-Accept: %s\r\n' 'Sec-WebSocket-Protocol: sip \r\n' '\r\n' % accept) request.connection.write(message) # Prevent pywebsocket from sending its own handshake message. raise handshake.AbortedByUserException('Close the connection')
def web_socket_do_extra_handshake(request): frame = stream.create_text_frame('Frame-contains-thirty-one-bytes') message = frame message += 'HTTP/1.1 101 Switching Protocols non-ascií\r\n' message += 'Upgrade: websocket\r\n' message += 'Connection: Upgrade\r\n' message += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept(request.headers_in['Sec-WebSocket-Key'])[0] message += '\r\n' request.connection.write(message) raise handshake.AbortedByUserException('Abort the connection') # Prevents pywebsocket from sending its own handshake message.
def web_socket_do_extra_handshake(request): accept = compute_accept(request.headers_in['Sec-WebSocket-Key'])[0] message = ('HTTP/1.1 101 Switching Protocols\r\n' 'Upgrade: websocket\r\n' 'Connection: Upgrade\r\n' 'Sec-WebSocket-Accept: %s\r\n' 'Sec-WebSocket-Extensions: permessage-deflate;\r\n' ' server_max_window_bits=10\r\n' '\r\n' % accept) request.connection.write(message) # Prevent pywebsocket from sending its own handshake message. raise handshake.AbortedByUserException('Close the connection')
def web_socket_do_extra_handshake(request): msg = "HTTP/1.1 101 Switching Protocols\r\n" msg += "Upgrade: websocket\r\n" msg += "Connection: Upgrade\r\n" msg += "Sec-WebSocket-Accept: %s\r\n" % compute_accept( request.headers_in["Sec-WebSocket-Key"])[0] msg += "\xa5:\r\n" msg += "\r\n" request.connection.write(msg) print msg raise handshake.AbortedByUserException( "Abort the connection" ) # Prevents pywebsocket from sending its own handshake message.
def web_socket_do_extra_handshake(request): accept = compute_accept( request.headers_in['Sec-WebSocket-Key'].encode('UTF-8'))[0] message = (b'HTTP/1.1 101 Switching Protocols\r\n' b'Upgrade: websocket\r\n' b'Connection: Upgrade\r\n' b'Sec-WebSocket-Accept: %s\r\n' b'Sec-WebSocket-Extensions: permessage-deflate;\r\n' b' server_max_window_bits=10\r\n' b'\r\n' % accept) request.connection.write(message) # Prevent pywebsocket from sending its own handshake message. raise handshake.AbortedByUserException('Close the connection')
def web_socket_do_extra_handshake(request): msg = '\0HTTP/1.1 101 Switching Protocols\r\n' msg += 'Upgrade: websocket\r\n' msg += 'Connection: Upgrade\r\n' msg += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept(request.headers_in['Sec-WebSocket-Key'])[0] msg += '\r\n' request.connection.write(msg) # continue writing data until the client disconnects while True: time.sleep(1) numFrames = 1024 / len(frame) # write over 1024 bytes including the above handshake for i in range(0, numFrames): request.connection.write(frame)
def web_socket_do_extra_handshake(request): url_parts = urlparse.urlsplit(request.uri) request.connection.write( 'HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASet-Cookie: ws_test_' + ( url_parts.query or '') + '=test; Path=/; HttpOnly\x0D\x0ASec-WebSocket-Origin: ' + request.ws_origin + '\x0D\x0ASec-WebSocket-Accept: ' + hybi.compute_accept( request.headers_in.get( common.SEC_WEBSOCKET_KEY_HEADER))[0] + '\x0D\x0A\x0D\x0A') return
def web_socket_do_extra_handshake(request): frame = stream.create_text_frame('Frame-contains-thirty-one-bytes') message = frame message += 'HTTP/1.1 101 Switching Protocols non-ascií\r\n' message += 'Upgrade: websocket\r\n' message += 'Connection: Upgrade\r\n' message += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept( request.headers_in['Sec-WebSocket-Key'])[0] message += '\r\n' request.connection.write(message) raise handshake.AbortedByUserException( 'Abort the connection' ) # Prevents pywebsocket from sending its own handshake message.
def web_socket_do_extra_handshake(request): resources = request.ws_resource.split('?', 1) parameter = None if len(resources) == 2: parameter = resources[1] message = 'HTTP/' message += parameter message += ' 101 Switching Protocols\r\n' message += 'Upgrade: websocket\r\n' message += 'Connection: Upgrade\r\n' message += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept(request.headers_in['Sec-WebSocket-Key'])[0] message += '\r\n' request.connection.write(message) raise handshake.AbortedByUserException('Abort the connection') # Prevents pywebsocket from sending its own handshake message.
def web_socket_do_extra_handshake(request): msg = '\0HTTP/1.1 101 Switching Protocols\r\n' msg += 'Upgrade: websocket\r\n' msg += 'Connection: Upgrade\r\n' msg += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept( request.headers_in['Sec-WebSocket-Key'])[0] msg += '\r\n' request.connection.write(msg) # continue writing data until the client disconnects while True: time.sleep(1) numFrames = 1024 / len( frame) # write over 1024 bytes including the above handshake for i in range(0, numFrames): request.connection.write(frame)
def web_socket_do_extra_handshake(request): resources = request.ws_resource.split('?', 1) parameters = None if len(resources) == 2: parameters = parse.unquote(resources[1]) message = b'HTTP/1.1 101 Switching Protocols\r\n' message += b'Upgrade: websocket\r\n' message += b'Connection: Upgrade\r\n' message += b'Sec-WebSocket-Accept: ' + compute_accept( request.headers_in['Sec-WebSocket-Key']) message += b'\r\nSec-WebSocket-Extensions: permessage-deflate' if parameters: message += b'; ' + parameters.encode() message += '\r\n\r\n' request.connection.write(message) # Prevents pywebsocket from sending its own handshake message. raise handshake.AbortedByUserException('Abort the connection')
def web_socket_do_extra_handshake(request): # Send simple response header. This test implements the handshake # manually. It's not clear why. request.connection.write( 'HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASet-Cookie: ws_test=test\x0D\x0ASec-WebSocket-Origin: ' + request.ws_origin + '\x0D\x0ASec-WebSocket-Accept: ' + hybi.compute_accept( request.headers_in.get(common.SEC_WEBSOCKET_KEY_HEADER))[0] + '\x0D\x0A\x0D\x0A') # Send a clean close frame. body = stream.create_closing_handshake_body(1000, '') request.connection.write(stream.create_close_frame(body)) # Wait for the responding close frame from the user agent. It's not possible # to use the stream methods at this point because the stream hasn't been # established from pywebsocket's point of view. Instead just read the # appropriate number of bytes and assume they are correct. request.connection.read(8) # Close the socket without pywebsocket sending its own handshake response. raise AbortedByUserException('Abort the connection')
def web_socket_do_extra_handshake(request): # This simulates a broken server that sends a WebSocket frame before the # handshake, and more frames afterwards. It is important that if this # happens the client does not buffer all the frames as the server continues # to send more data - it should abort after reading a reasonable number of # bytes (set arbitrarily to 1024). msg = 'HTTP/1.1 101 Switching \0Protocols\r\n' msg += 'Upgrade: websocket\r\n' msg += 'Connection: Upgrade\r\n' msg += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept(request.headers_in['Sec-WebSocket-Key'])[0] msg += '\r\n' request.connection.write(msg) # continue writing data until the client disconnects while True: time.sleep(1) numFrames = 1024 / len(frame) # write over 1024 bytes including the above handshake for i in range(0, numFrames): request.connection.write(frame)
def web_socket_do_extra_handshake(request): resources = request.ws_resource.split('?', 1) parameters = None if len(resources) == 2: parameters = urllib.unquote(resources[1]) message = 'HTTP/1.1 101 Switching Protocols\r\n' message += 'Upgrade: websocket\r\n' message += 'Connection: Upgrade\r\n' message += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept(request.headers_in['Sec-WebSocket-Key'])[0] message += 'Sec-WebSocket-Extensions: x-webkit-deflate-frame' if parameters: message += '; %s\r\n' % parameters else: message += '\r\n' message += '\r\n' request.connection.write(message) # Prevents pywebsocket from sending its own handshake message. raise handshake.AbortedByUserException('Abort the connection')
def web_socket_do_extra_handshake(request): # This simulates a broken server that sends a WebSocket frame before the # handshake, and more frames afterwards. It is important that if this # happens the client does not buffer all the frames as the server continues # to send more data - it should abort after reading a reasonable number of # bytes (set arbitrarily to 1024). msg = 'HTTP/1.1 101 Switching \0Protocols\r\n' msg += 'Upgrade: websocket\r\n' msg += 'Connection: Upgrade\r\n' msg += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept( request.headers_in['Sec-WebSocket-Key'])[0] msg += '\r\n' request.connection.write(msg) # continue writing data until the client disconnects while True: time.sleep(1) numFrames = 1024 / len( frame) # write over 1024 bytes including the above handshake for i in range(0, numFrames): request.connection.write(frame)
def web_socket_do_extra_handshake(request): # Send simple response header. This test implements the handshake # manually. It's not clear why. request.connection.write('HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASet-Cookie: ws_test=test\x0D\x0ASec-WebSocket-Origin: '+request.ws_origin+'\x0D\x0ASec-WebSocket-Accept: '+hybi.compute_accept(request.headers_in.get(common.SEC_WEBSOCKET_KEY_HEADER))[0]+'\x0D\x0A\x0D\x0A') # Send a clean close frame. body = stream.create_closing_handshake_body(1000, '') request.connection.write(stream.create_close_frame(body)); # Wait for the responding close frame from the user agent. It's not possible # to use the stream methods at this point because the stream hasn't been # established from pywebsocket's point of view. Instead just read the # appropriate number of bytes and assume they are correct. request.connection.read(8) # Close the socket without pywebsocket sending its own handshake response. raise AbortedByUserException('Abort the connection')