Permalink
Browse files

Add ssl_version option to choose SSL version to use.

  • Loading branch information...
1 parent 9c08f47 commit c2cf65f8e1b5e9987eed3ebf21da36816219c7fb @htanata htanata committed Aug 20, 2012
Showing with 27 additions and 0 deletions.
  1. 0 bin/httparty
  2. +11 −0 lib/httparty.rb
  3. +4 −0 lib/httparty/request.rb
  4. +5 −0 spec/httparty/request_spec.rb
  5. +7 −0 spec/httparty_spec.rb
View
0 bin/httparty 100644 → 100755
No changes.
View
@@ -296,6 +296,17 @@ def query_string_normalizer(normalizer)
default_options[:query_string_normalizer] = normalizer
end
+ # Allows setting of SSL version to use.
+ # You can get a list of valid versions from OpenSSL::SSL::SSLContext::METHODS.
+ #
+ # class Foo
+ # include HTTParty
+ # ssl_version :SSLv3
+ # end
+ def ssl_version(version)
+ default_options[:ssl_version] = version
+ end
+
# Allows setting an OpenSSL certificate authority file
#
# class Foo
View
@@ -113,6 +113,10 @@ def attach_ssl_certificates(http)
http.ca_path = options[:ssl_ca_path]
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
end
+
+ if options[:ssl_version]
+ http.ssl_version = options[:ssl_version]
+ end
end
end
@@ -165,6 +165,11 @@
request.send(:http).use_ssl?.should == true
end
+ it 'uses specified ssl_version' do
+ request = HTTParty::Request.new(Net::HTTP::Get, 'https://foobar.com', :ssl_version => :TLSv1)
+ request.send(:http).ssl_version.should == :TLSv1
+ end
+
context "PEM certificates" do
before do
OpenSSL::X509::Certificate.stub(:new)
View
@@ -38,6 +38,13 @@
end
end
+ describe 'ssl_version' do
+ it 'should set the ssl_version content' do
+ @klass.ssl_version :SSLv3
+ @klass.default_options[:ssl_version].should == :SSLv3
+ end
+ end
+
describe 'http_proxy' do
it 'should set the address' do
@klass.http_proxy 'proxy.foo.com', 80

0 comments on commit c2cf65f

Please sign in to comment.