From fc8c056eff2024b2b5c1a25f765406a334cb4337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Sat, 9 Feb 2019 21:39:14 +0100 Subject: [PATCH] Detect nbxmpp supported encryptions - Better handle logging for gnupg --- gajim/common/const.py | 2 ++ gajim/common/gpg.py | 1 - gajim/common/logging_helpers.py | 7 +++++-- gajim/common/modules/message.py | 16 ++++++++++------ 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/gajim/common/const.py b/gajim/common/const.py index 0b8f0c763..94e453df3 100644 --- a/gajim/common/const.py +++ b/gajim/common/const.py @@ -9,6 +9,8 @@ Option.__new__.__defaults__ = (None,) * len(Option._fields) # type: ignore DialogButton = namedtuple('DialogButton', 'text callback action') DialogButton.__new__.__defaults__ = (None, None) # type: ignore +EncryptionData = namedtuple('EncryptionData', 'additional_data') +EncryptionData.__new__.__defaults__ = (None,) # type: ignore @unique class OptionKind(IntEnum): diff --git a/gajim/common/gpg.py b/gajim/common/gpg.py index 3168b130b..ae27adddb 100644 --- a/gajim/common/gpg.py +++ b/gajim/common/gpg.py @@ -25,7 +25,6 @@ from gajim.common import app if app.is_installed('GPG'): import gnupg - gnupg.logger = logging.getLogger('gajim.c.gnupg') class GnuPG(gnupg.GPG): def __init__(self): diff --git a/gajim/common/logging_helpers.py b/gajim/common/logging_helpers.py index ea6321e0b..fb5bd3389 100644 --- a/gajim/common/logging_helpers.py +++ b/gajim/common/logging_helpers.py @@ -148,18 +148,21 @@ def init(): ) ) - # fake the root logger so we have 'gajim' root name instead of 'root' root_log = logging.getLogger('gajim') root_log.setLevel(logging.WARNING) root_log.addHandler(consoleloghandler) root_log.propagate = False - # handle nbxmpp logs too root_log = logging.getLogger('nbxmpp') root_log.setLevel(logging.WARNING) root_log.addHandler(consoleloghandler) root_log.propagate = False + root_log = logging.getLogger('gnupg') + root_log.setLevel(logging.WARNING) + root_log.addHandler(consoleloghandler) + root_log.propagate = False + def set_loglevels(loglevels_string): parseAndSetLogLevels(loglevels_string) diff --git a/gajim/common/modules/message.py b/gajim/common/modules/message.py index 0a30211e2..9dac01525 100644 --- a/gajim/common/modules/message.py +++ b/gajim/common/modules/message.py @@ -175,13 +175,17 @@ class Message: event = MessageReceivedEvent(None, **event_attr) app.nec.push_incoming_event(event) - app.plugin_manager.extension_point( - 'decrypt', self._con, event, self._on_message_decrypted) - if not event.encrypted: - eme = parse_eme(event.stanza) - if eme is not None: - event.msgtxt = eme + if properties.is_encrypted: + event.additional_data['encrypted'] = properties.encrypted.additional_data self._on_message_decrypted(event) + else: + app.plugin_manager.extension_point( + 'decrypt', self._con, event, self._on_message_decrypted) + if not event.encrypted: + eme = parse_eme(event.stanza) + if eme is not None: + event.msgtxt = eme + self._on_message_decrypted(event) def _on_message_decrypted(self, event): try: