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