diff options
| author | 2019-05-29 16:11:47 +0100 | |
|---|---|---|
| committer | 2019-05-29 16:11:47 +0100 | |
| commit | b8f778d7bd3072dc5f794d99c40c7e010f1fb915 (patch) | |
| tree | 6c1ec578e5f6d8358c39e3d081841626fd3aeb25 /modules | |
| parent | Switch resume.py to use the last `server-time` it saw, not last .recv() (diff) | |
| signature | ||
Only try to send QUITs on ctrl+c when we're connected - sys.exit otherwise
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/line_handler/core.py | 1 | ||||
| -rw-r--r-- | modules/signals.py | 16 |
2 files changed, 12 insertions, 5 deletions
diff --git a/modules/line_handler/core.py b/modules/line_handler/core.py index 88544a08..c7212ccf 100644 --- a/modules/line_handler/core.py +++ b/modules/line_handler/core.py @@ -11,6 +11,7 @@ def handle_001(event): event["server"].name = event["prefix"].hostmask event["server"].set_own_nickname(event["args"][0]) event["server"].send_whois(event["server"].nickname) + event["server"].connected = True def handle_005(events, event): isupport_list = event["args"][1:-1] diff --git a/modules/signals.py b/modules/signals.py index 580be9ff..522179c5 100644 --- a/modules/signals.py +++ b/modules/signals.py @@ -1,4 +1,4 @@ -import signal +import signal, sys from src import Config, ModuleManager, utils class Module(ModuleManager.BaseModule): @@ -19,11 +19,17 @@ class Module(ModuleManager.BaseModule): self.events.on("signal.interrupt").call(signum=signum) + written = False for server in self.bot.servers.values(): - server.socket.clear_send_buffer() - line = server.send_quit("Shutting down") - server.send_enabled = False - line.on_send(self._make_hook(server)) + if server.connected: + server.socket.clear_send_buffer() + line = server.send_quit("Shutting down") + server.send_enabled = False + line.on_send(self._make_hook(server)) + written = True + + if not written: + sys.exit() def _make_hook(self, server): return lambda: self.bot.disconnect(server) |
