From dd474b72f01ca9ac3b431d0592cb10c19dee6415 Mon Sep 17 00:00:00 2001 From: Chimrod Date: Tue, 30 Aug 2011 15:47:18 +0200 Subject: Set timeout for feed fetching --- lib/feed2imap/httpfetcher.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'lib/feed2imap/httpfetcher.rb') diff --git a/lib/feed2imap/httpfetcher.rb b/lib/feed2imap/httpfetcher.rb index 9980578..6734465 100644 --- a/lib/feed2imap/httpfetcher.rb +++ b/lib/feed2imap/httpfetcher.rb @@ -34,7 +34,14 @@ HTTPDEBUG = false # Class used to retrieve the feed over HTTP class HTTPFetcher - def HTTPFetcher::fetcher(baseuri, uri, lastcheck, recursion) + + @timeout = 30 # should be enough for everybody... + + def timeout=(value) + @timeout = value + end + + def fetcher(baseuri, uri, lastcheck, recursion) proxy_host = nil proxy_port = nil proxy_user = nil @@ -50,8 +57,8 @@ class HTTPFetcher proxy_port, proxy_user, proxy_pass ).new(uri.host, uri.port) - http.read_timeout = 30 # should be enough for everybody... - http.open_timeout = 30 + http.read_timeout = @timeout + http.open_timeout = @timeout if uri.scheme == 'https' http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE @@ -108,8 +115,8 @@ class HTTPFetcher end end - def HTTPFetcher::fetch(url, lastcheck) + def fetch(url, lastcheck) uri = URI::parse(url) - return HTTPFetcher::fetcher(uri, uri, lastcheck, MAXREDIR) + return fetcher(uri, uri, lastcheck, MAXREDIR) end end -- cgit v1.2.3-54-g00ecf