Browse Source

Catch address resolution failure exceptions

master
Neil Booth 8 years ago
parent
commit
81e6577838
  1. 10
      server/peers.py

10
server/peers.py

@ -10,11 +10,11 @@
import ast import ast
import asyncio import asyncio
import random import random
import socket
import ssl import ssl
import time import time
from collections import defaultdict, Counter from collections import defaultdict, Counter
from functools import partial from functools import partial
from socket import SOCK_STREAM
from lib.jsonrpc import JSONSession from lib.jsonrpc import JSONSession
from lib.peer import Peer from lib.peer import Peer
@ -337,7 +337,13 @@ class PeerManager(util.LoggedClass):
permit = self.permit_new_onion_peer() permit = self.permit_new_onion_peer()
reason = 'rate limiting' reason = 'rate limiting'
else: else:
infos = await self.loop.getaddrinfo(host, 80, type=SOCK_STREAM) try:
infos = await self.loop.getaddrinfo(host, 80,
type=socket.SOCK_STREAM)
except socket.gaierror:
permit = False
reason = 'address resolution failure'
else:
permit = any(source == info[-1][0] for info in infos) permit = any(source == info[-1][0] for info in infos)
reason = 'source-destination mismatch' reason = 'source-destination mismatch'

Loading…
Cancel
Save