def close(self): try: i = self.get_socket_info() except: i = self._socket log("%s.close() for socket=%s", self, i) Connection.close(self) self._socket.close() self._socket = None log("%s.close() done", self)
def untilConcludes(self, *args): try: return Connection.untilConcludes(self, *args) except websocket.WebSocketConnectionClosedException as e: raise ConnectionClosedException(e) except websocket.WebSocketTimeoutException as e: raise ConnectionClosedException(e)
def untilConcludes(self, *args): try: return Connection.untilConcludes(self, *args) except error as e: code = e[0] if code==winerror.ERROR_PIPE_NOT_CONNECTED: return None raise IOError("%s: %s" % (code, win32api.FormatMessage(code)))
def __init__(self, name, pipe_handle): log("NamedPipeConnection(%s, %#x)", name, pipe_handle) Connection.__init__(self, name, "named-pipe") self.pipe_handle = pipe_handle self.read_buffer = (c_char * BUFSIZE)() self.read_buffer_ptr = cast(addressof(self.read_buffer), c_void_p) self.read_event = CreateEventA(None, True, False, None) self.read_overlapped = OVERLAPPED() self.read_overlapped.hEvent = self.read_event self.read_overlapped.Internal = None self.read_overlapped.InternalHigh = None self.read_overlapped.union.Pointer = None self.write_event = CreateEventA(None, True, False, None) self.write_overlapped = OVERLAPPED() self.write_overlapped.hEvent = self.write_event self.write_overlapped.Internal = None self.write_overlapped.InternalHigh = None self.write_overlapped.union.Pointer = None
def get_info(self): d = Connection.get_info(self) d["protocol-type"] = "websocket" ws = self._socket if ws: d.update({ "sub-protocol": ws.getsubprotocol() or "", "headers": ws.getheaders() or {}, "fileno": ws.fileno(), "status": ws.getstatus(), "connected": ws.connected, }) return d
def untilConcludes(self, fn, *args, **kwargs): try: return Connection.untilConcludes(self, fn, *args, **kwargs) except Exception as e: code = GetLastError() log("untilConcludes(%s, ) exception: %s, error code=%s", fn, e, code, exc_info=True) if code == ERROR_PIPE_NOT_CONNECTED: return None raise IOError("%s: %s" % (e, code))
def get_info(self): d = Connection.get_info(self) d["type"] = "named-pipe" d["closed"] = self.pipe_handle is None return d
def get_info(self): d = Connection.get_info(self) d["type"] = "named-pipe" return d
def __init__(self, *args): Connection.__init__(self, *args) self.queue = Queue()
def __init__(self, name, pipe_handle): Connection.__init__(self, name, "named-pipe") self.pipe_handle = pipe_handle
def untilConcludes(self, *args): try: return Connection.untilConcludes(self, *args) except error as e: code = e[0] raise IOError("%s: %s" % (code, win32api.FormatMessage(code)))
def close(self): self.queue.put(None) Connection.close(self)
def __init__(self, read_buffers, socktype="tcp"): self.read_buffers = read_buffers self.pos = 0 self.write_data = [] Connection.__init__(self, "local", socktype, {})
def __init__(self, ws, target, socktype): Connection.__init__(self, target, socktype) self._socket = ws