Exemplo n.º 1
0
    def test_ssl_connect2 (self):
        def accept_once (listenfd):
            try:
                conn, addr = listenfd.accept()
                conn.write('hello\r\n')
                shutdown_safe(conn)
                conn.close()
            finally:
                shutdown_safe(listenfd)
                listenfd.close()

        server = ssl_listener(('0.0.0.0', 0),
                              self.certificate_file,
                              self.private_key_file)
        greenthread.spawn(accept_once, server)

        raw_client = connect(('127.0.0.1', server.getsockname()[1]))
        client = util.wrap_ssl(raw_client)
        fd = socket._fileobject(client, 'rb', 8192)

        assert fd.readline() == 'hello\r\n'
        try:
            self.assertEquals('', fd.read(10))
        except SSL.ZeroReturnError:
            # if it's a GreenSSL object it'll do this
            pass
        shutdown_safe(client)
        client.close()
Exemplo n.º 2
0
 def accept_once (listenfd):
     try:
         conn, addr = listenfd.accept()
         conn.write('hello\r\n')
         shutdown_safe(conn)
         conn.close()
     finally:
         shutdown_safe(listenfd)
         listenfd.close()
Exemplo n.º 3
0
    def test_ssl_connect (self):
        def serve (listener):
            sock, addr = listener.accept()
            stuff = sock.read(8192)

        sock = listen_ssl_socket()
        server_coro = evy.spawn(serve, sock)

        raw_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        ssl_client = util.wrap_ssl(raw_client)
        ssl_client.connect(('127.0.0.1', sock.getsockname()[1]))
        ssl_client.write('abc')
        shutdown_safe(ssl_client)
        ssl_client.close()
        server_coro.wait()
Exemplo n.º 4
0
    def test_ssl_close (self):
        def serve (listener):
            sock, addr = listener.accept()
            stuff = sock.read(8192)
            try:
                self.assertEquals("", sock.read(8192))
            except SSL.ZeroReturnError:
                pass

        sock = listen_ssl_socket()

        server_coro = evy.spawn(serve, sock)

        raw_client = connect(('127.0.0.1', sock.getsockname()[1]))
        client = util.wrap_ssl(raw_client)
        client.write('X')
        shutdown_safe(client)
        client.close()
        server_coro.wait()
Exemplo n.º 5
0
    def test_ssl_sending_messages (self):
        s = evy.wrap_ssl(listen(('localhost', 0)),
                         certfile = certificate_file,
                         keyfile = private_key_file,
                         server_side = True)
        self.spawn_server(sock = s)
        connect_data = [
            "GET /echo HTTP/1.1",
            "Upgrade: WebSocket",
            "Connection: Upgrade",
            "Host: localhost:%s" % self.port,
            "Origin: http://localhost:%s" % self.port,
            "Sec-WebSocket-Protocol: ws",
            "Sec-WebSocket-Key1: 4 @1  46546xW%0l 1 5",
            "Sec-WebSocket-Key2: 12998 5 Y3 1  .P00",
        ]
        sock = evy.wrap_ssl(connect(
            ('localhost', self.port)))

        sock.sendall('\r\n'.join(connect_data) + '\r\n\r\n^n:ds[4U')
        first_resp = sock.recv(1024)
        # make sure it sets the wss: protocol on the location header
        loc_line = [x for x in first_resp.split("\r\n")
                    if x.lower().startswith('sec-websocket-location')][0]
        self.assert_("wss://localhost" in loc_line,
                     "Expecting wss protocol in location: %s" % loc_line)
        sock.sendall('\x00hello\xFF')
        result = sock.recv(1024)
        self.assertEqual(result, '\x00hello\xff')
        sock.sendall('\x00start')
        sleep(0.001)
        sock.sendall(' end\xff')
        result = sock.recv(1024)
        self.assertEqual(result, '\x00start end\xff')
        shutdown_safe(sock)
        sock.close()
        sleep(0.01)
Exemplo n.º 6
0
 def finish(self):
     BaseHTTPServer.BaseHTTPRequestHandler.finish(self)
     sockets.shutdown_safe(self.connection)
     self.connection.close()
Exemplo n.º 7
0
Arquivo: wsgi.py Projeto: inercia/evy
 def finish (self):
     BaseHTTPServer.BaseHTTPRequestHandler.finish(self)
     sockets.shutdown_safe(self.connection)
     self.connection.close()
Exemplo n.º 8
0
 def serve (listener):
     sock, addr = listener.accept()
     sock.write('content')
     shutdown_safe(sock)
     sock.close()