From b496da75c50398609a86c6984487d8902ef5a71b Mon Sep 17 00:00:00 2001 From: Ondrej Mikle Date: Tue, 3 Oct 2023 19:45:36 +0200 Subject: [PATCH] Handle badly encoded incoming messages better --- brmdoor_nfc_daemon.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/brmdoor_nfc_daemon.py b/brmdoor_nfc_daemon.py index 1d724a3..05a0bef 100755 --- a/brmdoor_nfc_daemon.py +++ b/brmdoor_nfc_daemon.py @@ -355,13 +355,18 @@ class IrcThread(threading.Thread): # see https://github.com/jaraco/irc/issues/132 while self.getConnected(): - self.reactor.process_once(timeout=5) try: - with self.threadLock: - msg = self.msgQueue.get_nowait() - self.connection.privmsg_many(self.channels, msg) - except Queue.Empty: - pass + self.reactor.process_once(timeout=5) + try: + with self.threadLock: + msg = self.msgQueue.get_nowait() + self.connection.privmsg_many(self.channels, msg) + except Queue.Empty: + pass + except UnicodeDecodeError: + logging.warn("Skipped incorrectly encoded message, cannot decode to UTF-8") + except UnicodeEncodeError: + logging.warn("We were sending badly encoded message? maybe via topic?") except Exception: logging.exception("Exception in IRC thread") time.sleep(self.reconnectDelay)