Feature #2574 ยป merge_https.patch
lib/net/http.rb | ||
---|---|---|
#++
|
||
require 'net/protocol'
|
||
autoload :OpenSSL, 'openssl'
|
||
require 'uri'
|
||
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.
|
lib/net/https.rb | ||
---|---|---|
=begin
|
||
= $RCSfile$ -- SSL/TLS enhancement for Net::HTTP.
|
||
= net/https -- SSL/TLS enhancement for Net::HTTP.
|
||
== Info
|
||
'OpenSSL for Ruby 2' project
|
||
... | ... | |
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:
|
||
... | ... | |
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
|