From: Christian Heller Date: Mon, 17 Nov 2025 15:42:15 +0000 (+0100) Subject: Don't crash on QUIT during server greeting before we've been told our names. X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/%7B%7Bdb.prefix%7D%7D/calendar?a=commitdiff_plain;h=7dd1e51c51af85e3b3b81d238991a9f25e3c3335;p=ircplom Don't crash on QUIT during server greeting before we've been told our names. --- diff --git a/src/ircplom/client.py b/src/ircplom/client.py index d5e03df..c9c12d9 100644 --- a/src/ircplom/client.py +++ b/src/ircplom/client.py @@ -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]: