From 64c933fbb85a9cd428c07c9e9bdbb330817d0861 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ram=C3=B3n=20M=2E=20G=C3=B3mez?= Date: Wed, 8 Jul 2020 11:47:53 +0200 Subject: [PATCH] #940: Fix message encoding. --- src/OGAgentUser.py | 7 ++----- src/opengnsys/ipc.py | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/OGAgentUser.py b/src/OGAgentUser.py index 8c1286b..9c612cc 100644 --- a/src/OGAgentUser.py +++ b/src/OGAgentUser.py @@ -132,17 +132,14 @@ class MessagesProcessor(QtCore.QThread): msg_id, data = msg logger.debug('Got Message on User Space: {}:{}'.format(msg_id, data)) if msg_id == ipc.MSG_MESSAGE: - module, message, data = data.split('\0') + module, message, data = data.decode('utf-8').split('\0') self.message.emit((module, message, data)) elif msg_id == ipc.MSG_LOGOFF: self.logoff.emit() elif msg_id == ipc.MSG_SCRIPT: self.script.emit(data.decode('utf-8')) except Exception as e: - try: - logger.error('Got error on IPC thread {}'.format(utils.exceptionToMessage(e))) - except: - logger.error('Got error on IPC thread (an unicode error??)') + logger.error('Got error on IPC thread {}'.format(utils.exceptionToMessage(e))) if self.ipc.running is False and self.running is True: logger.warn('Lost connection with Service, closing program') diff --git a/src/opengnsys/ipc.py b/src/opengnsys/ipc.py index 430ae45..c421849 100644 --- a/src/opengnsys/ipc.py +++ b/src/opengnsys/ipc.py @@ -182,7 +182,7 @@ class ClientProcessor(threading.Thread): try: m = msg[1] if msg[1] is not None else b'' l = len(m) - data = MAGIC + bytes(msg[0]) + bytes(l & 0xFF) + bytes(l >> 8) + m + data = MAGIC + bytes([msg[0]]) + bytes([l & 0xFF]) + bytes([l >> 8]) + m try: self.clientSocket.sendall(data) except socket.error as e: