tlnworker.add_peer: don't block event loop with DNS - electrum - Electrum Bitcoin wallet
HTML git clone https://git.parazyd.org/electrum
DIR Log
DIR Files
DIR Refs
DIR Submodules
---
DIR commit 01981f71fba61190422a4b6bb682bfc12d4200b8
DIR parent fbd0c9aae8496a05522c519c3fad33cfdcc56f94
HTML Author: SomberNight <somber.night@protonmail.com>
Date: Tue, 3 Mar 2020 21:04:54 +0100
lnworker.add_peer: don't block event loop with DNS
Diffstat:
M electrum/lnworker.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
---
DIR diff --git a/electrum/lnworker.py b/electrum/lnworker.py
t@@ -857,8 +857,11 @@ class LNWallet(LNWorker):
if not addrs:
raise ConnStringFormatError(_('Don\'t know any addresses for node:') + ' ' + bh2u(node_id))
host, port, timestamp = self.choose_preferred_address(addrs)
+ port = int(port)
+ # Try DNS-resolving the host (if needed). This is simply so that
+ # the caller gets a nice exception if it cannot be resolved.
try:
- socket.getaddrinfo(host, int(port))
+ await asyncio.get_event_loop().getaddrinfo(host, port)
except socket.gaierror:
raise ConnStringFormatError(_('Hostname does not resolve (getaddrinfo failed)'))
# add peer