home · contact · privacy
Move PING processing out of SocketRecvLoop.
authorChristian Heller <c.heller@plomlompom.de>
Fri, 30 May 2025 13:20:28 +0000 (15:20 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Fri, 30 May 2025 13:20:28 +0000 (15:20 +0200)
ircplom.py

index b090868b3c5889a3e5c221faad1c5b010dc2fd1f..ddea13e07cb1fb9d0f84499ff12bec8389ae8f1f 100755 (executable)
@@ -408,10 +408,7 @@ class SocketRecvLoop(Loop):
     'Loop receiving and translating socket messages towards main loop.'
 
     def process_bonus(self, yielded: str) -> None:
-        msg = IrcMessage.from_raw(yielded)
-        if msg.verb == 'PING':
-            self.broadcast('PING', msg.parameters[0])
-        self.broadcast('RECV', str(msg))
+        self.broadcast('RECV', IrcMessage.from_raw(yielded))
 
 
 class KeyboardLoop(Loop):
@@ -447,9 +444,12 @@ def run() -> None:
                     raise event.payload
                 if event.type_ == 'SEND':
                     event.payload.send(conn)
-                elif event.type_ == 'PING':
-                    q_to_main.put(
-                        Event('SEND', IrcMessage('PONG', [event.payload])))
+                elif event.type_ == 'RECV':
+                    msg: IrcMessage = event.payload
+                    if msg.verb == 'PING':
+                        q_to_main.put(
+                                Event('SEND',
+                                      IrcMessage('PONG', [msg.parameters[0]])))
 
 
 if __name__ == '__main__':