Commit 5a1a2e6c authored by mathieui's avatar mathieui Committed by Maxime Buquet

Add a "passthrough" parameter for calls through the safetymetaclass

So errors don’t get caught
parent 33a1519a
......@@ -75,9 +75,12 @@ class SafetyMetaclass(type):
@staticmethod
def safe_func(f):
def helper(*args, **kwargs):
passthrough = kwargs.pop('passthrough', False)
try:
return f(*args, **kwargs)
except:
if passthrough:
raise
if inspect.stack()[1][1] == inspect.getfile(f):
raise
elif SafetyMetaclass.core:
......@@ -86,9 +89,12 @@ class SafetyMetaclass(type):
'Error')
return None
async def async_helper(*args, **kwargs):
passthrough = kwargs.pop('passthrough', False)
try:
return await f(*args, **kwargs)
except:
if passthrough:
raise
if inspect.stack()[1][1] == inspect.getfile(f):
raise
elif SafetyMetaclass.core:
......
......@@ -245,9 +245,9 @@ class E2EEPlugin(BasePlugin):
# Call the enabled encrypt method
func = self._enabled_tabs[jid]
if iscoroutinefunction(func):
await func(message, tab)
await func(message, tab, passthrough=True)
else:
func(message, tab)
func(message, tab, passthrough=True)
if has_body:
# Only add EME tag if the message has a body.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment