home · contact · privacy
Don't crash on QUIT during server greeting before we've been told our names.
authorChristian Heller <c.heller@plomlompom.de>
Mon, 17 Nov 2025 15:42:15 +0000 (16:42 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Mon, 17 Nov 2025 15:42:15 +0000 (16:42 +0100)
src/ircplom/client.py

index d5e03df873dabc256f94090654bf0ef3e59612c7..c9c12d96f1ba7f420a4ccbbde1825a8036c44f7e 100644 (file)
@@ -743,6 +743,10 @@ class Client(ABC, ClientQueueMixin):
         if '_verb' not in ret:
             raise ImplementationFail(msg.raw)
         for n_u_h in ret['_nickuserhosts']:  # update, turn into proper users
+            if ret['_verb'] == 'QUIT' and 'me' not in self.db.users.keys():
+                # a QUIT before server gave us names should refer to us (and
+                # we need a "me" user to consequently call its .quit)
+                self.db.users['me'].nickuserhost = n_u_h
             if (id_ := self.db.users.id_for_nickuserhost(
                     n_u_h, allow_none=True, updating=True)):
                 for ret_name in [k for k in ret if ret[k] is n_u_h]: