aboutsummaryrefslogtreecommitdiff
path: root/src/IRCBot.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-11-05 20:33:45 +0000
committerGravatar jesopo2018-11-05 20:33:45 +0000
commitce3b319beec2126a46f1f918f10bccd664038cb5 (patch)
tree7090ce22f84be3126fc14d11d507f2e5c9b5f49f /src/IRCBot.py
parentCache a server fileno from connect onwards, like we used to (diff)
signature
Only automatically reconnect to a server when we don't already have a server
with the same ID (to make reconnection work)
Diffstat (limited to 'src/IRCBot.py')
-rw-r--r--src/IRCBot.py19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/IRCBot.py b/src/IRCBot.py
index 10197509..322e9844 100644
--- a/src/IRCBot.py
+++ b/src/IRCBot.py
@@ -134,10 +134,6 @@ class Bot(object):
event["timer"].redo()
def reconnect(self, server_id: int, connection_params: typing.Optional[
utils.irc.IRCConnectionParameters]=None) -> bool:
- old_server = self.get_server(server_id)
- if old_server:
- self.disconnect(old_server)
-
server = self.add_server(server_id, False, connection_params)
if self.connect(server):
self.servers[server.fileno()] = server
@@ -208,13 +204,14 @@ class Bot(object):
self._events.on("server.disconnect").call(server=server)
self.disconnect(server)
- reconnect_delay = self.config.get("reconnect-delay", 10)
- self._timers.add("reconnect", reconnect_delay,
- server_id=server.id,
- connection_params=server.connection_params)
-
- print("disconnected from %s, reconnecting in %d seconds" % (
- str(server), reconnect_delay))
+ if not self.get_server(server.id):
+ reconnect_delay = self.config.get("reconnect-delay", 10)
+ self._timers.add("reconnect", reconnect_delay,
+ server_id=server.id,
+ connection_params=server.connection_params)
+ self.log.info(
+ "Disconnected from %s, reconnecting in %d seconds",
+ [str(server), reconnect_delay])
elif server.waiting_send() and server.throttle_done():
self.register_both(server)