From e0cdab5fff0e57bdea2cb3237e5031dd69fbada5 Mon Sep 17 00:00:00 2001 From: naruse Date: Fri, 8 Jan 2010 12:17:15 +0000 Subject: * lib/net/http, lib/net/https: move content from net/https to net/http. [ruby-dev:39986] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/net/http.rb | 29 ++++++++++++++++++++++++++++- lib/net/https.rb | 46 +--------------------------------------------- 2 files changed, 29 insertions(+), 46 deletions(-) (limited to 'lib') diff --git a/lib/net/http.rb b/lib/net/http.rb index fb8a3cc08b..e0d35e598d 100644 --- a/lib/net/http.rb +++ b/lib/net/http.rb @@ -26,6 +26,7 @@ #++ require 'net/protocol' +autoload :OpenSSL, 'openssl' require 'uri' module Net #:nodoc: @@ -544,7 +545,33 @@ module Net #:nodoc: # returns true if use SSL/TLS with HTTP. def use_ssl? - false # redefined in net/https + @use_ssl + end + + # Turn on/off SSL. + # This flag must be set before starting session. + # If you change use_ssl value after session started, + # a Net::HTTP object raises IOError. + def use_ssl=(flag) + flag = (flag ? true : false) + if started? and @use_ssl != flag + raise IOError, "use_ssl value changed, but session already started" + end + @use_ssl = flag + end + + SSL_ATTRIBUTES = %w( + ssl_version key cert ca_file ca_path cert_store ciphers + verify_mode verify_callback verify_depth ssl_timeout + ) + attr_accessor(*SSL_ATTRIBUTES) + + # return the X.509 certificates the server presented. + def peer_cert + if not use_ssl? or not @socket + return nil + end + @socket.io.peer_cert end # Opens TCP connection and HTTP session. diff --git a/lib/net/https.rb b/lib/net/https.rb index 636ae1be4d..9839504870 100644 --- a/lib/net/https.rb +++ b/lib/net/https.rb @@ -1,6 +1,6 @@ =begin -= $RCSfile$ -- SSL/TLS enhancement for Net::HTTP. += net/https -- SSL/TLS enhancement for Net::HTTP. == Info 'OpenSSL for Ruby 2' project @@ -11,16 +11,6 @@ This program is licenced under the same licence as Ruby. (See the file 'LICENCE'.) -== Requirements - This program requires Net 1.2.0 or higher version. - You can get it from RAA or Ruby's CVS repository. - -== Version - $Id$ - - 2001-11-06: Contiributed to Ruby/OpenSSL project. - 2004-03-06: Some code is merged in to net/http. - == Example Here is a simple HTTP client: @@ -100,37 +90,3 @@ It can be replaced by the following code: require 'net/http' require 'openssl' - -module Net - class HTTP - remove_method :use_ssl? - def use_ssl? - @use_ssl - end - - # Turn on/off SSL. - # This flag must be set before starting session. - # If you change use_ssl value after session started, - # a Net::HTTP object raises IOError. - def use_ssl=(flag) - flag = (flag ? true : false) - if started? and @use_ssl != flag - raise IOError, "use_ssl value changed, but session already started" - end - @use_ssl = flag - end - - SSL_ATTRIBUTES = %w( - ssl_version key cert ca_file ca_path cert_store ciphers - verify_mode verify_callback verify_depth ssl_timeout - ) - attr_accessor(*SSL_ATTRIBUTES) - - def peer_cert - if not use_ssl? or not @socket - return nil - end - @socket.io.peer_cert - end - end -end -- cgit v1.2.3