lib/ftw/agent.rb in ftw-0.0.33 vs lib/ftw/agent.rb in ftw-0.0.34

- old
+ new

@@ -300,16 +300,25 @@ # @param [FTW::Request] # @return [FTW::Response] the response for this request. def execute(request) # TODO(sissel): Make redirection-following optional, but default. - connection, error = connect(request.headers["Host"], request.port, - request.protocol == "https") - if !error.nil? - p :error => error - raise error + tries = 3 + begin + connection, error = connect(request.headers["Host"], request.port, + request.protocol == "https") + if !error.nil? + p :error => error + raise error + end + response = request.execute(connection) + rescue EOFError => e + tries -= 1 + @logger.warn("Error while sending request, will retry.", + :tries_left => tries, + :exception => e) + retry if tries > 0 end - response = request.execute(connection) redirects = 0 # Follow redirects while response.redirect? and response.headers.include?("Location") # RFC2616 section 10.3.3 indicates HEAD redirects must not include a