aboutsummaryrefslogtreecommitdiff
path: root/src/IRCServer.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-11-05 12:27:30 +0000
committerGravatar jesopo2018-11-05 12:27:30 +0000
commitc3f654673a98db159cde1388c8606811d1c3af10 (patch)
treedb26bd7dd05c97f186168320ab64242be3aa829c /src/IRCServer.py
parent@utils.hook doesn't work outside of modules! (diff)
signature
Cache socket fileno in IRCServer.Server just before disconnecting
Diffstat (limited to 'src/IRCServer.py')
-rw-r--r--src/IRCServer.py4
1 files changed, 3 insertions, 1 deletions
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)