Don't allow sending to the closed server socket if we are reconnecting
This commit is contained in:
parent
13c62c8577
commit
635cab7440
10
ircbot.py
10
ircbot.py
|
@ -183,7 +183,10 @@ class ServerThread(threading.Thread):
|
|||
time.sleep(wait)
|
||||
|
||||
with self.server_socket_write_lock:
|
||||
self.server_socket.sendall(line + b'\r\n')
|
||||
if self.server_socket is not None:
|
||||
self.server_socket.sendall(line + b'\r\n')
|
||||
else:
|
||||
return
|
||||
|
||||
# Don't log PINGs or PONGs
|
||||
if not (len(line) >= 5 and (line[:5] == b'PING ' or line[:5] == b'PONG ')):
|
||||
|
@ -351,6 +354,7 @@ class ServerThread(threading.Thread):
|
|||
|
||||
# Tell the server we're quiting
|
||||
self.send_line_raw(b'QUIT :%s exiting normally' % self.server.username.encode('utf-8'))
|
||||
|
||||
self.server_socket.close()
|
||||
|
||||
break
|
||||
|
@ -358,7 +362,9 @@ class ServerThread(threading.Thread):
|
|||
else:
|
||||
# Tell server we're reconnecting
|
||||
self.send_line_raw(b'QUIT :Reconnecting')
|
||||
self.server_socket.close()
|
||||
with self.server_socket_write_lock:
|
||||
self.server_socket.close()
|
||||
self.server_socket = None
|
||||
|
||||
except (BrokenPipeError, TimeoutError) as err:
|
||||
# Connection broke, log it and try to reconnect
|
||||
|
|
Loading…
Reference in New Issue