From def6eb0ac3434f0fe58d0d4fe5d95ec2df174dca Mon Sep 17 00:00:00 2001 From: jesopo Date: Thu, 5 Mar 2020 11:23:39 +0000 Subject: [PATCH] handle RPL_VISIBLEHOST (396) to catch our hostname (maybe username too) changing --- src/core_modules/line_handler/__init__.py | 4 ++++ src/core_modules/line_handler/core.py | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/core_modules/line_handler/__init__.py b/src/core_modules/line_handler/__init__.py index a77dc451..f23a98ed 100644 --- a/src/core_modules/line_handler/__init__.py +++ b/src/core_modules/line_handler/__init__.py @@ -205,6 +205,10 @@ class Module(ModuleManager.BaseModule): @utils.hook("raw.received.chghost") def chghost(self, event): user.chghost(self.events, event) + # RPL_VISIBLEHOST, telling us what our hostname (and sometimes username) is + @utils.hook("raw.received.396") + def handle_396(self, event): + core.handle_396(event) # IRCv3 SETNAME, to change a user's realname @utils.hook("raw.received.setname") diff --git a/src/core_modules/line_handler/core.py b/src/core_modules/line_handler/core.py index a7075613..8e60edfa 100644 --- a/src/core_modules/line_handler/core.py +++ b/src/core_modules/line_handler/core.py @@ -165,3 +165,9 @@ def handle_433(event): _nick_in_use(event["server"]) def handle_437(event): _nick_in_use(event["server"]) + +def handle_396(event): + username, sep, hostname = event["line"][1].rpartition("@") + event["server"].hostname = hostname + if sep: + event["server"].username = username