Exemple #1
0
    def test_regression_gh_17(self):
        def serve(listener):
            sock, addr = listener.accept()

            # to simulate condition mentioned in GH-17
            sock._sslobj = None
            sock.sendall(b'some data')
            greenio.shutdown_safe(sock)
            sock.close()

        listener = listen_ssl_socket(('', 0))
        eventlet.spawn(serve, listener)
        ssl(eventlet.connect(('localhost', listener.getsockname()[1])))
Exemple #2
0
    def test_regression_gh_17(self):
        def serve(listener):
            sock, addr = listener.accept()

            # to simulate condition mentioned in GH-17
            sock._sslobj = None
            sock.sendall(b'some data')
            greenio.shutdown_safe(sock)
            sock.close()

        listener = listen_ssl_socket(('', 0))
        eventlet.spawn(serve, listener)
        ssl(eventlet.connect(('localhost', listener.getsockname()[1])))
Exemple #3
0
    def connect(self):
        "Connect to a host on a given (SSL) port."

        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.connect((self.host, self.port))
        ssl = socket.ssl(sock, self.key_file, self.cert_file)
        self.sock = FakeSocket(sock, ssl)
Exemple #4
0
 def test_greensslobject(self):
     def serve(listener):
         sock, addr = listener.accept()
         sock.write(b'content')
         greenio.shutdown_safe(sock)
         sock.close()
     listener = listen_ssl_socket(('', 0))
     eventlet.spawn(serve, listener)
     client = ssl(eventlet.connect(('localhost', listener.getsockname()[1])))
     self.assertEqual(client.read(1024), b'content')
     self.assertEqual(client.read(1024), b'')
Exemple #5
0
 def test_greensslobject(self):
     def serve(listener):
         sock, addr = listener.accept()
         sock.write('content')
         greenio.shutdown_safe(sock)
         sock.close()
     listener = listen_ssl_socket(('', 0))
     killer = eventlet.spawn(serve, listener)
     client = ssl(eventlet.connect(('localhost', listener.getsockname()[1])))
     self.assertEquals(client.read(1024), 'content')
     self.assertEquals(client.read(1024), '')
 def connector():
     listener_ready.wait()
     s = socket.socket()
     s.connect(('localhost', PORT[0]))
     listener_gone.wait()
     try:
         ssl_sock = socket.ssl(s)
     except socket.sslerror:
         pass
     else:
         raise test_support.TestFailed(
                   'connecting to closed SSL socket should have failed')
Exemple #7
0
    def _setup_transport(self):
        """
        Wrap the socket in an SSL object, either the
        new Python 2.6 version, or the older Python 2.5 and
        lower version.

        """
        if HAVE_PY26_SSL:
            self.sslobj = ssl.wrap_socket(self.sock)
            self.sslobj.do_handshake()
        else:
            self.sslobj = socket.ssl(self.sock)
Exemple #8
0
 def connector():
     listener_ready.wait()
     s = socket.socket()
     s.connect(('localhost', PORT[0]))
     listener_gone.wait()
     try:
         ssl_sock = socket.ssl(s)
     except socket.sslerror:
         pass
     else:
         raise test_support.TestFailed(
             'connecting to closed SSL socket should have failed')
Exemple #9
0
def make_proxy_connection(uri):
    headers = headers or {}
    proxy = None
    if uri.scheme == 'https':
        proxy = os.environ.get('https_proxy')
    elif uri.scheme == 'http':
        proxy = os.environ.get('http_proxy')

    if not proxy:
        return make_connection(uri, use_proxy=False)
  
    if uri.scheme == 'https':
        proxy_auth = _get_proxy_auth()
        if proxy_auth:
            proxy_auth = 'Proxy-authorization: %s' % proxy_auth
        port = uri.port
        if not port:
            port = 443
        proxy_connect = 'CONNECT %s:%s HTTP/1.0\r\n' % (uri.hostname, port)
        user_agent = 'User-Agent: %s\r\n' % restkit.USER_AGENT
        proxy_pieces = '%s%s%s\r\n' % (proxy_connect, proxy_auth, user_agent)
        proxy_uri = url_parser(proxy)
        if not proxy_uri.port:
            proxy_uri.port = '80'
        # Connect to the proxy server, very simple recv and error checking
        p_sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        p_sock.connect((proxy_uri.host, int(proxy_uri.port)))
        p_sock.sendall(proxy_pieces)
        response = ''
        # Wait for the full response.
        while response.find("\r\n\r\n") == -1:
            response += p_sock.recv(8192)
        p_status = response.split()[1]
        if p_status != str(200):
            raise ProxyError('Error status=%s' % str(p_status))
        # Trivial setup for ssl socket.
        ssl = socket.ssl(p_sock, None, None)
        fake_sock = httplib.FakeSocket(p_sock, ssl)
        # Initalize httplib and replace with the proxy socket.
        connection = httplib.HTTPConnection(proxy_uri.host)
        connection.sock=fake_sock
        return connection
    else:
        proxy_uri = url_parser(proxy)
        if not proxy_uri.port:
            proxy_uri.port = '80'
        return httplib.HTTPConnection(proxy_uri.hostname, proxy_uri.port)
    return None
Exemple #10
0
    def test_greensslobject(self):
        import warnings
        # disabling socket.ssl warnings because we're testing it here
        warnings.filterwarnings(action = 'ignore',
                        message='.*socket.ssl.*',
                        category=DeprecationWarning)

        def serve(listener):
            sock, addr = listener.accept()
            sock.write('content')
            greenio.shutdown_safe(sock)
            sock.close()
        listener = listen_ssl_socket(('', 0))
        killer = eventlet.spawn(serve, listener)
        from eventlet.green.socket import ssl
        client = ssl(eventlet.connect(('localhost', listener.getsockname()[1])))
        self.assertEquals(client.read(1024), 'content')
        self.assertEquals(client.read(1024), '')
Exemple #11
0
    def test_greensslobject(self):
        import warnings
        # disabling socket.ssl warnings because we're testing it here
        warnings.filterwarnings(action='ignore',
                                message='.*socket.ssl.*',
                                category=DeprecationWarning)

        def serve(listener):
            sock, addr = listener.accept()
            sock.write('content')
            greenio.shutdown_safe(sock)
            sock.close()

        listener = listen_ssl_socket(('', 0))
        killer = eventlet.spawn(serve, listener)
        from eventlet.green.socket import ssl
        client = ssl(eventlet.connect(
            ('localhost', listener.getsockname()[1])))
        self.assertEquals(client.read(1024), 'content')
        self.assertEquals(client.read(1024), '')
    s = socket.socket()
    s.settimeout(30.0)
    try:
        s.connect(ADDR)
    except socket.timeout:
        error_msg('timed out')
        return
    except socket.error, exc:  # In case connection is refused.
        if exc.args[0] == errno.ECONNREFUSED:
            error_msg('was refused')
            return
        else:
            raise

    ss = socket.ssl(s)
    # Read part of return welcome banner twice.
    ss.read(1)
    ss.read(1)
    s.close()

def test_rude_shutdown():
    if test_support.verbose:
        print "test_rude_shutdown ..."

    from eventlet.green import threading

    # Some random port to connect to.
    PORT = [9934]

    listener_ready = threading.Event()
Exemple #13
0
    s = socket.socket()
    s.settimeout(30.0)
    try:
        s.connect(ADDR)
    except socket.timeout:
        error_msg('timed out')
        return
    except socket.error, exc:  # In case connection is refused.
        if exc.args[0] == errno.ECONNREFUSED:
            error_msg('was refused')
            return
        else:
            raise

    ss = socket.ssl(s)
    # Read part of return welcome banner twice.
    ss.read(1)
    ss.read(1)
    s.close()


def test_rude_shutdown():
    if test_support.verbose:
        print "test_rude_shutdown ..."

    from eventlet.green import threading

    # Some random port to connect to.
    PORT = [9934]