diff options
| -rw-r--r-- | IRCBot.py | 3 | ||||
| -rw-r--r-- | IRCServer.py | 7 |
2 files changed, 8 insertions, 2 deletions
@@ -100,7 +100,8 @@ class Bot(object): def reconnect(self, event): server_details = self.database.get_server(event["server_id"]) - server = self.add_server(*server_details, False) + add_server_args = server_details + [False] + server = self.add_server(*add_server_args) if self.connect(server): self.servers[server.fileno()] = server else: diff --git a/IRCServer.py b/IRCServer.py index 0de4d854..2c17ed11 100644 --- a/IRCServer.py +++ b/IRCServer.py @@ -154,7 +154,12 @@ class Server(object): "encoding", "utf8") fallback_encoding = self.bot.database.get_server_setting( self.id, "fallback-encoding", "latin-1") - data = self.read_buffer + self.socket.recv(4096) + data = b"" + try: + data = self.read_buffer + self.socket.recv(4096) + except ConnectionResetError: + self.disconnect() + return [] self.read_buffer = b"" data_lines = [line.strip(b"\r") for line in data.split(b"\n")] if data_lines[-1]: |
