# HG changeset patch # User Goffi # Date 1553069327 -3600 # Node ID 4e875d9eea488a51343fd2c1ceb2825107b61c2c # Parent 31a5038cdf798df85642d2e04254ac221b0ecbea plugin XEP-0384: give feedback to client when encryption failed diff -r 31a5038cdf79 -r 4e875d9eea48 sat/core/constants.py --- a/sat/core/constants.py Wed Mar 20 09:08:47 2019 +0100 +++ b/sat/core/constants.py Wed Mar 20 09:08:47 2019 +0100 @@ -123,6 +123,7 @@ MESS_EXTRA_INFO = u"info_type" EXTRA_INFO_DECR_ERR = u"DECRYPTION_ERROR" + EXTRA_INFO_ENCR_ERR = u"ENCRYPTION_ERROR" # encryption is a key for plugins MESS_KEY_ENCRYPTION = u"ENCRYPTION" diff -r 31a5038cdf79 -r 4e875d9eea48 sat/plugins/plugin_xep_0384.py --- a/sat/plugins/plugin_xep_0384.py Wed Mar 20 09:08:47 2019 +0100 +++ b/sat/plugins/plugin_xep_0384.py Wed Mar 20 09:08:47 2019 +0100 @@ -891,9 +891,11 @@ else: break except Exception as e: - log.warning( - _(u"Can't encrypt message for {entity}: {reason}".format( - entity=entity_bare_jid.full(), reason=str(e).decode('utf-8', 'replace')))) + msg = _(u"Can't encrypt message for {entity}: {reason}".format( + entity=entity_bare_jid.full(), reason=str(e).decode('utf-8', 'replace'))) + log.warning(msg) + extra = {C.MESS_EXTRA_INFO: C.EXTRA_INFO_ENCR_ERR} + client.feedback(entity_bare_jid, msg, extra) raise e defer.returnValue(encrypted)