hints: avoid DNS lookups for all-numeric ipv4/ipv6 hints
This improves offline behavior for some tests, if we get spurious DNS lookup errors.
This commit is contained in:
parent
50c766f811
commit
d9284cd4cb
|
@ -3,7 +3,8 @@ import sys
|
|||
import re
|
||||
import six
|
||||
from collections import namedtuple
|
||||
from twisted.internet.endpoints import HostnameEndpoint
|
||||
from twisted.internet.endpoints import TCP4ClientEndpoint, TCP6ClientEndpoint, HostnameEndpoint
|
||||
from twisted.internet.abstract import isIPAddress, isIPv6Address
|
||||
from twisted.python import log
|
||||
|
||||
# These namedtuples are "hint objects". The JSON-serializable dictionaries
|
||||
|
@ -82,6 +83,11 @@ def endpoint_from_hint_obj(hint, tor, reactor):
|
|||
return None
|
||||
return None
|
||||
if isinstance(hint, DirectTCPV1Hint):
|
||||
# avoid DNS lookup unless necessary
|
||||
if isIPAddress(hint.hostname):
|
||||
return TCP4ClientEndpoint(reactor, hint.hostname, hint.port)
|
||||
if isIPv6Address(hint.hostname):
|
||||
return TCP6ClientEndpoint(reactor, hint.hostname, hint.port)
|
||||
return HostnameEndpoint(reactor, hint.hostname, hint.port)
|
||||
return None
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user