1
0
mirror of https://github.com/scrapy/scrapy.git synced 2025-02-25 18:24:30 +00:00

Merge pull request #2496 from redapple/dns-resolver-timeout

[MRG] Enforce DNS resolution timeout
This commit is contained in:
Mikhail Korobov 2017-02-02 21:13:59 +05:00 committed by GitHub
commit 245287fd5a

View File

@ -16,8 +16,11 @@ class CachingThreadedResolver(ThreadedResolver):
def getHostByName(self, name, timeout=None): def getHostByName(self, name, timeout=None):
if name in dnscache: if name in dnscache:
return defer.succeed(dnscache[name]) return defer.succeed(dnscache[name])
if not timeout: # in Twisted<=16.6, getHostByName() is always called with
timeout = self.timeout # a default timeout of 60s (actually passed as (1, 3, 11, 45) tuple),
# so the input argument above is simply overridden
# to enforce Scrapy's DNS_TIMEOUT setting's value
timeout = (self.timeout,)
d = super(CachingThreadedResolver, self).getHostByName(name, timeout) d = super(CachingThreadedResolver, self).getHostByName(name, timeout)
d.addCallback(self._cache_result, name) d.addCallback(self._cache_result, name)
return d return d