From c3f654673a98db159cde1388c8606811d1c3af10 Mon Sep 17 00:00:00 2001 From: jesopo Date: Mon, 5 Nov 2018 12:27:30 +0000 Subject: Cache socket fileno in IRCServer.Server just before disconnecting --- src/IRCServer.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/IRCServer.py') diff --git a/src/IRCServer.py b/src/IRCServer.py index a1d70616..d99c714d 100644 --- a/src/IRCServer.py +++ b/src/IRCServer.py @@ -39,6 +39,7 @@ class Server(IRCObject.Object): self.buffered_lines = [] # type: typing.List[bytes] self.read_buffer = b"" self.recent_sends = [] # type: typing.List[float] + self.cached_fileno = None # type: typing.Optional[int] self.users = {} # type: typing.Dict[str, IRCUser.User] self.new_users = set([]) #type: typing.Set[IRCUser.User] @@ -69,7 +70,7 @@ class Server(IRCObject.Object): return "%s:%s%s" % (self.target_hostname, "+" if self.tls else "", self.port) def fileno(self): - return self.socket.fileno() + return self.cached_fileno or self.socket.fileno() def tls_wrap(self): context = ssl.SSLContext(ssl.PROTOCOL_TLS) @@ -107,6 +108,7 @@ class Server(IRCObject.Object): self.send_nick(self.original_nickname) self.connected = True def disconnect(self): + self.cached_fileno = self.socket.fileno() self.connected = False try: self.socket.shutdown(socket.SHUT_RDWR) -- cgit v1.3.1-10-gc9f91