Browse Source

network: log original error text in catch_server_exceptions

related: https://github.com/spesmilo/electrum/issues/8439
master
SomberNight 3 years ago
parent
commit
fd41308c6b
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 8
      electrum/network.py

8
electrum/network.py

@ -891,12 +891,18 @@ class Network(Logger, NetworkRetryManager[ServerAddr]):
return make_reliable_wrapper
def catch_server_exceptions(func):
"""Decorator that wraps server errors in UntrustedServerReturnedError,
to avoid showing untrusted arbitrary text to users.
"""
@functools.wraps(func)
async def wrapper(self, *args, **kwargs):
try:
return await func(self, *args, **kwargs)
except aiorpcx.jsonrpc.CodeMessageError as e:
raise UntrustedServerReturnedError(original_exception=e) from e
wrapped_exc = UntrustedServerReturnedError(original_exception=e)
# log (sanitized) untrusted error text now, to ease debugging
self.logger.debug(f"got error from server for {func.__qualname__}: {wrapped_exc!r}")
raise wrapped_exc from e
return wrapper
@best_effort_reliable

Loading…
Cancel
Save