vendored/puppet/lib/puppet/network/http/connection.rb in bolt-0.20.3 vs vendored/puppet/lib/puppet/network/http/connection.rb in bolt-0.20.5
- old
+ new
@@ -1,12 +1,12 @@
require 'net/https'
require 'puppet/ssl/host'
-require 'puppet/ssl/configuration'
require 'puppet/ssl/validator'
require 'puppet/network/http'
require 'uri'
require 'date'
+require 'time'
module Puppet::Network::HTTP
# This will be raised if too many redirects happen for a given HTTP request
class RedirectionLimitExceededException < Puppet::Error ; end
@@ -295,11 +295,18 @@
request.basic_auth(options[:basic_auth][:user], options[:basic_auth][:password])
end
end
def execute_request(connection, request)
+ start = Time.now
connection.request(request)
+ rescue EOFError => e
+ elapsed = (Time.now - start).to_f.round(3)
+ uri = @site.addr + request.path.split('?')[0]
+ eof = EOFError.new(_('request %{uri} interrupted after %{elapsed} seconds') % {uri: uri, elapsed: elapsed})
+ eof.set_backtrace(e.backtrace) unless e.backtrace.empty?
+ raise eof
end
def with_connection(site, &block)
response = nil
@pool.with_connection(site, @verify) do |conn|
@@ -312,11 +319,12 @@
if error.message.include? "certificate verify failed"
msg = error.message
msg << ": [" + @verify.verify_errors.join('; ') + "]"
raise Puppet::Error, msg, error.backtrace
- elsif peer_cert && !OpenSSL::SSL.verify_certificate_identity(peer_cert.content, site.host)
- valid_certnames = [peer_cert.name, *peer_cert.subject_alt_names].uniq
+ elsif peer_cert && !OpenSSL::SSL.verify_certificate_identity(peer_cert, site.host)
+ valid_certnames = [peer_cert.subject.to_s.sub(/.*=/, ''),
+ *Puppet::SSL::Certificate.subject_alt_names_for(peer_cert)].uniq
if valid_certnames.size > 1
expected_certnames = _("expected one of %{certnames}") % { certnames: valid_certnames.join(', ') }
else
expected_certnames = _("expected %{certname}") % { certname: valid_certnames.first }
end