def __init__(self, addr, port, ssl_ctx=None, timeout=None): self.ssl_ctx = ssl_ctx self.connected = False self.conn = None self.addr = addr self.port = port from resolver import resolve_dns_name from core import _private_connect ip = resolve_dns_name(self.addr) remote_addr = (ip, self.port) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.setblocking(0) try: sock.connect(remote_addr) except socket.error, e: if e.args[0] == errno.EINPROGRESS: _private_connect(self, ip, sock, timeout=timeout) else: raise
def _resolve(self, addr): from resolver import resolve_dns_name return resolve_dns_name(addr)