def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.connected_event = Event() self._iobuf = StringIO() self._callbacks = {} self._push_watchers = defaultdict(set) self.deque = deque() self._deque_lock = Lock() self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) if self.ssl_options: if not ssl: raise Exception("This version of Python was not compiled with SSL support") self._socket = ssl.wrap_socket(self._socket, **self.ssl_options) self._socket.settimeout(1.0) # TODO potentially make this value configurable self._socket.connect((self.host, self.port)) self._socket.setblocking(0) if self.sockopts: for args in self.sockopts: self._socket.setsockopt(*args) with _loop_lock: self._read_watcher = libev.IO(self._socket._sock, libev.EV_READ, _loop, self.handle_read) self._write_watcher = libev.IO(self._socket._sock, libev.EV_WRITE, _loop, self.handle_write) self._send_options_message() self.__class__._connection_created(self) # start the global event loop if needed _start_loop() _loop_notifier.send()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) asyncore.dispatcher.__init__(self) self.connected_event = Event() self._callbacks = {} self.deque = deque() self.deque_lock = Lock() self._loop.connection_created(self) self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.connect((self.host, self.port)) self.add_channel() if self.sockopts: for args in self.sockopts: self.socket.setsockopt(*args) self._writable = True self._readable = True # start the event loop if needed self._loop.maybe_start()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.connected_event = Event() self._iobuf = StringIO() self._write_queue = Queue() self._callbacks = {} self._push_watchers = defaultdict(set) self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) if self.ssl_options: if not ssl: raise Exception("This version of Python was not compiled with SSL support") self._socket = ssl.wrap_socket(self._socket, **self.ssl_options) self._socket.settimeout(1.0) # TODO potentially make this value configurable self._socket.connect((self.host, self.port)) if self.sockopts: for args in self.sockopts: self._socket.setsockopt(*args) self._read_watcher = gevent.spawn(lambda: self.handle_read()) self._write_watcher = gevent.spawn(lambda: self.handle_write()) self._send_options_message()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) asyncore.dispatcher.__init__(self) self.connected_event = Event() self._iobuf = BytesIO() self._callbacks = {} self.deque = deque() self.deque_lock = Lock() self._loop.connection_created(self) self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.connect((self.host, self.port)) self.add_channel() if self.sockopts: for args in self.sockopts: self.socket.setsockopt(*args) self._writable = True self._readable = True # start the event loop if needed self._loop.maybe_start()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) asyncore.dispatcher.__init__(self) self.connected_event = Event() self._callbacks = {} self._push_watchers = defaultdict(set) self.deque = deque() with _starting_conns_lock: _starting_conns.add(self) self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.connect((self.host, self.port)) if self.sockopts: for args in self.sockopts: self.socket.setsockopt(*args) self._writable = True self._readable = True # start the global event loop if needed _start_loop()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self._write_queue = Queue() sockerr = None addresses = socket.getaddrinfo( self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM ) for (af, socktype, proto, canonname, sockaddr) in addresses: try: self._socket = socket.socket(af, socktype, proto) self._socket.settimeout(1.0) self._socket.connect(sockaddr) sockerr = None break except socket.error as err: sockerr = err if sockerr: raise socket.error( sockerr.errno, "Tried connecting to %s. Last error: %s" % ( [a[4] for a in addresses], sockerr.strerror) ) if self.sockopts: for args in self.sockopts: self._socket.setsockopt(*args) self._read_watcher = eventlet.spawn(lambda: self.handle_read()) self._write_watcher = eventlet.spawn(lambda: self.handle_write()) self._send_options_message()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.connected_event = Event() self._callbacks = {} self._push_watchers = defaultdict(set) self.deque = deque() self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._socket.connect((self.host, self.port)) self._socket.setblocking(0) if self.sockopts: for args in self.sockopts: self._socket.setsockopt(*args) self._read_watcher = libev.IO(self._socket._sock, libev.EV_READ, _loop, self.handle_read) self._write_watcher = libev.IO(self._socket._sock, libev.EV_WRITE, _loop, self.handle_write) with _loop_lock: self._read_watcher.start() self._write_watcher.start() self._send_options_message() # start the global event loop if needed if not _start_loop(): # if the loop was already started, notify it with _loop_lock: _loop_notifier.send()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.connected_event = Event() self._write_queue = Queue() self._callbacks = {} self._push_watchers = defaultdict(set) sockerr = None addresses = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM) for (af, socktype, proto, canonname, sockaddr) in addresses: try: self._socket = socket.socket(af, socktype, proto) self._socket.settimeout(1.0) self._socket.connect(sockaddr) sockerr = None break except socket.error as err: sockerr = err if sockerr: raise socket.error( sockerr.errno, "Tried connecting to %s. Last error: %s" % ([a[4] for a in addresses], sockerr.strerror)) if self.sockopts: for args in self.sockopts: self._socket.setsockopt(*args) self._read_watcher = eventlet.spawn(lambda: self.handle_read()) self._write_watcher = eventlet.spawn(lambda: self.handle_write()) self._send_options_message()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.connected_event = Event() self._write_queue = Queue() self._callbacks = {} self._push_watchers = defaultdict(set) sockerr = None addresses = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM) for (af, socktype, proto, canonname, sockaddr) in addresses: try: self._socket = socket.socket(af, socktype, proto) if self.ssl_options: self._socket = ssl.wrap_socket(self._socket, **self.ssl_options) self._socket.settimeout(1.0) self._socket.connect(sockaddr) sockerr = None break except socket.error as err: sockerr = err if sockerr: raise socket.error(sockerr.errno, "Tried connecting to %s. Last error: %s" % ([a[4] for a in addresses], sockerr.strerror)) if self.sockopts: for args in self.sockopts: self._socket.setsockopt(*args) self._read_watcher = gevent.spawn(self.handle_read) self._write_watcher = gevent.spawn(self.handle_write) self._send_options_message()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) asyncore.dispatcher.__init__(self) self.deque = deque() self.deque_lock = Lock() sockerr = None addresses = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM) for (af, socktype, proto, canonname, sockaddr) in addresses: try: self.create_socket(af, socktype) self.connect(sockaddr) sockerr = None break except socket.error as err: sockerr = err if sockerr: raise socket.error(sockerr.errno, "Tried connecting to %s. Last error: %s" % ([a[4] for a in addresses], sockerr.strerror)) self.add_channel() if self.sockopts: for args in self.sockopts: self.socket.setsockopt(*args) self._writable = True self._readable = True # start the event loop if needed self._loop.maybe_start()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self._write_queue = Queue() self._connect_socket() self._read_watcher = eventlet.spawn(lambda: self.handle_read()) self._write_watcher = eventlet.spawn(lambda: self.handle_write()) self._send_options_message()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.connected_event = Event() self._callbacks = {} self.deque = deque() self._deque_lock = Lock() sockerr = None addresses = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM) for (af, socktype, proto, canonname, sockaddr) in addresses: try: self._socket = socket.socket(af, socktype, proto) if self.ssl_options: if not ssl: raise Exception( "This version of Python was not compiled with SSL support" ) self._socket = ssl.wrap_socket(self._socket, **self.ssl_options) self._socket.settimeout( 1.0) # TODO potentially make this value configurable self._socket.connect(sockaddr) sockerr = None break except socket.error as err: sockerr = err if sockerr: raise socket.error( sockerr.errno, "Tried connecting to %s. Last error: %s" % ([a[4] for a in addresses], sockerr.strerror)) self._socket.setblocking(0) if self.sockopts: for args in self.sockopts: self._socket.setsockopt(*args) with self._libevloop._lock: self._read_watcher = libev.IO(self._socket.fileno(), libev.EV_READ, self._libevloop._loop, self.handle_read) self._write_watcher = libev.IO(self._socket.fileno(), libev.EV_WRITE, self._libevloop._loop, self.handle_write) self._send_options_message() self._libevloop.connection_created(self) # start the global event loop if needed self._libevloop.maybe_start()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.connected_event = Event() self._write_queue = Queue() self._callbacks = {} self._push_watchers = defaultdict(set) self._connect_socket() self._read_watcher = eventlet.spawn(lambda: self.handle_read()) self._write_watcher = eventlet.spawn(lambda: self.handle_write()) self._send_options_message()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self._connect_socket() self._socket.setblocking(0) self._write_queue = asyncio.Queue(loop=self._loop) # see initialize_reactor -- loop is running in a separate thread, so we # have to use a threadsafe call self._read_watcher = asyncio.run_coroutine_threadsafe( self.handle_read(), loop=self._loop) self._write_watcher = asyncio.run_coroutine_threadsafe( self.handle_write(), loop=self._loop) self._send_options_message()
def __init__(self, *args, **kwargs): """ Initialization method. Note that we can't call reactor methods directly here because it's not thread-safe, so we schedule the reactor/connection stuff to be run from the event loop thread when it gets the chance. """ Connection.__init__(self, *args, **kwargs) self.is_closed = True self.connector = None reactor.callFromThread(self.add_connection) self._loop.maybe_start()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.deque = deque() self.deque_lock = Lock() self._connect_socket() asyncore.dispatcher.__init__(self, self._socket, _dispatcher_map) self._writable = True self._readable = True self._send_options_message() # start the event loop if needed self._loop.maybe_start()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self._connect_socket() self._socket.setblocking(0) self._write_queue = asyncio.Queue(loop=self._loop) # see initialize_reactor -- loop is running in a separate thread, so we # have to use a threadsafe call self._read_watcher = asyncio.run_coroutine_threadsafe( self.handle_read(), loop=self._loop ) self._write_watcher = asyncio.run_coroutine_threadsafe( self.handle_write(), loop=self._loop ) self._send_options_message()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.deque = deque() self._deque_lock = Lock() self._connect_socket() self._socket.setblocking(0) with self._libevloop._lock: self._read_watcher = libev.IO(self._socket.fileno(), libev.EV_READ, self._libevloop._loop, self.handle_read) self._write_watcher = libev.IO(self._socket.fileno(), libev.EV_WRITE, self._libevloop._loop, self.handle_write) self._send_options_message() self._libevloop.connection_created(self) # start the global event loop if needed self._libevloop.maybe_start()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.connected_event = Event() self._callbacks = {} self.deque = deque() self._deque_lock = Lock() sockerr = None addresses = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM) for (af, socktype, proto, canonname, sockaddr) in addresses: try: self._socket = socket.socket(af, socktype, proto) if self.ssl_options: if not ssl: raise Exception("This version of Python was not compiled with SSL support") self._socket = ssl.wrap_socket(self._socket, **self.ssl_options) self._socket.settimeout(1.0) # TODO potentially make this value configurable self._socket.connect(sockaddr) sockerr = None break except socket.error as err: sockerr = err if sockerr: raise socket.error(sockerr.errno, "Tried connecting to %s. Last error: %s" % ([a[4] for a in addresses], sockerr.strerror)) self._socket.setblocking(0) if self.sockopts: for args in self.sockopts: self._socket.setsockopt(*args) with self._libevloop._lock: self._read_watcher = libev.IO(self._socket.fileno(), libev.EV_READ, self._libevloop._loop, self.handle_read) self._write_watcher = libev.IO(self._socket.fileno(), libev.EV_WRITE, self._libevloop._loop, self.handle_write) self._send_options_message() self._libevloop.connection_created(self) # start the global event loop if needed self._libevloop.maybe_start()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.connected_event = Event() self._write_queue = Queue() self._callbacks = {} self._push_watchers = defaultdict(set) self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._socket.settimeout(1.0) self._socket.connect((self.host, self.port)) if self.sockopts: for args in self.sockopts: self._socket.setsockopt(*args) self._read_watcher = gevent.spawn(lambda: self.handle_read()) self._write_watcher = gevent.spawn(lambda: self.handle_write()) self._send_options_message()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) asyncore.dispatcher.__init__(self) self.connected_event = Event() self._callbacks = {} self.deque = deque() self.deque_lock = Lock() self._loop.connection_created(self) sockerr = None addresses = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM) for (af, socktype, proto, canonname, sockaddr) in addresses: try: self.create_socket(af, socktype) self.connect(sockaddr) sockerr = None break except socket.error as err: sockerr = err if sockerr: raise socket.error( sockerr.errno, "Tried connecting to %s. Last error: %s" % ([a[4] for a in addresses], sockerr.strerror)) self.add_channel() if self.sockopts: for args in self.sockopts: self.socket.setsockopt(*args) self._writable = True self._readable = True # start the event loop if needed self._loop.maybe_start()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) asyncore.dispatcher.__init__(self) self.connected_event = Event() self._callbacks = {} self.deque = deque() self.deque_lock = Lock() self._loop.connection_created(self) self._connect_socket() asyncore.dispatcher.__init__(self, self._socket) self._writable = True self._readable = True self._send_options_message() # start the event loop if needed self._loop.maybe_start()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.deque = deque() self.deque_lock = Lock() self._connect_socket() # start the event loop if needed _global_loop.maybe_start() init_handler = WaitableTimer(timeout=0, callback=partial( asyncore.dispatcher.__init__, self, self._socket, _dispatcher_map)) _global_loop.add_timer(init_handler) init_handler.wait(kwargs["connect_timeout"]) self._writable = True self._readable = True self._send_options_message()
def __init__(self, *args, **kwargs): Connection.__init__(self, *args, **kwargs) self.deque = deque() self.deque_lock = Lock() self._connect_socket() # start the event loop if needed _global_loop.maybe_start() init_handler = WaitableTimer( timeout=0, callback=partial(asyncore.dispatcher.__init__, self, self._socket, _dispatcher_map) ) _global_loop.add_timer(init_handler) init_handler.wait(kwargs["connect_timeout"]) self._writable = True self._readable = True self._send_options_message()