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])))
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)
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'')
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')
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)
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
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), '')
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()
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]