Browse Source

Use aiohttp session correctly when reading blacklist

patch-2
Neil Booth 6 years ago
parent
commit
5e161b1a25
  1. 14
      electrumx/server/peers.py

14
electrumx/server/peers.py

@ -138,16 +138,20 @@ class PeerManager(object):
url = self.env.blacklist_url url = self.env.blacklist_url
if not url: if not url:
return return
async def read_blacklist():
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
text = await response.text()
return set(entry.lower() for entry in json.loads(text))
while True: while True:
session = aiohttp.ClientSession()
try: try:
async with session.get(url) as response: self.blacklist = await read_blacklist()
r = await response.text()
self.blacklist = set([entry.lower() for entry in json.loads(r)])
self.logger.info(f'blacklist from {url} has {len(self.blacklist)} entries')
except Exception as e: except Exception as e:
self.logger.error(f'could not retrieve blacklist from {url}: {e}') self.logger.error(f'could not retrieve blacklist from {url}: {e}')
else: else:
self.logger.info(f'blacklist from {url} has {len(self.blacklist)} entries')
# Got new blacklist. Now check our current peers against it # Got new blacklist. Now check our current peers against it
for peer in self.peers: for peer in self.peers:
if self._is_blacklisted(peer): if self._is_blacklisted(peer):

Loading…
Cancel
Save