644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
|
# File 'lib/httpclient/session.rb', line 644
def connect_ssl_proxy(socket, uri)
req = HTTP::Message.new_connect_request(uri)
@client.request_filter.each do |filter|
filter.filter_request(req)
end
(req)
req.dump(socket)
socket.flush unless @socket_sync
res = HTTP::Message.new_response('')
(socket)
res.http_version, res.status, res.reason = @version, @status, @reason
.each do |key, value|
res..set(key.to_s, value)
end
commands = @client.request_filter.collect { |filter|
filter.filter_response(req, res)
}
if commands.find { |command| command == :retry }
raise RetryableResponse.new(res)
end
unless @status == 200
raise BadResponseError.new("connect to ssl proxy failed with status #{@status} #{@reason}", res)
end
end
|