[#4346] Segmentation fault — Andrew Walrond <andrew@...>
FYI, just got this random unexpected crash
On 01 Feb 2005, at 07:33, Andrew Walrond wrote:
[#4360] Adding lastlog info to etc — "Berger, Daniel" <Daniel.Berger@...>
Hi all,
[#4368] 'when (cond):' causes SyntaxError — "NAKAMURA, Hiroshi" <nakahiro@...>
Hi,
[#4385] add color_set support to curses.c — Paul Duncan <pabs@...>
I'm not sure why this is missing from the Curses binding, but the
[#4392] HTTP Basic authentication for open_uri — Kent Sibilev <ksibilev@...>
Can somebody apply the following patch for open_uri in order to enable
[#4402] BUG: Struct.new(:a?).instance_methods — "Cs. Henk" <csaba-ml@...>
Hi, getting an ArgumentError with "NULL pointer given" doesn't seem to
[#4403] Re: Unknown OS X 10.2 Socket constants (+script to generate) — Sam Roberts <sroberts@...>
Quoteing matz@ruby-lang.org, on Tue, Feb 08, 2005 at 01:21:18PM +0900:
[#4427] Re: windows socket connection freeze — ville.mattila@...
[#4432] curses + threads = non-blocking getch — William Morgan <wmorgan-ruby-core@...>
Hello experts,
In article <20050214231544.GE26414@masanjin.net>,
[#4439] Thread-safe Ruby Status? — Vincent Isambart <vincent.isambart@...>
Hello,
[#4448] add persistent history to irb — "David A. Black" <dblack@...>
Hi --
[#4453] bug in IRB with $_ matching a range of regexps — Ryan Davis <ryand-ruby@...>
> % ruby -v
[#4468] Re: Strange argc check in stable snapshot — "Berger, Daniel" <Daniel.Berger@...>
> -----Original Message-----
[#4475] Re: Strange argc check in stable snapshot — "Berger, Daniel" <Daniel.Berger@...>
> -----Original Message-----
[#4479] Requesting addition to IRB (configurable standard output) — Sascha Ebach <se@...>
Hello,
Quoting se@digitale-wertschoepfung.de, on Fri, Feb 25, 2005 at 01:22:34AM +0900:
On 24 Feb 2005, at 19:51, Sam Roberts wrote:
Quoting drbrain@segment7.net, on Sat, Feb 26, 2005 at 02:43:31AM +0900:
On 25 Feb 2005, at 16:03, Sam Roberts wrote:
Quoting drbrain@segment7.net, on Sat, Feb 26, 2005 at 10:24:52AM +0900:
On 25 Feb 2005, at 18:55, Sam Roberts wrote:
Quoting drbrain@segment7.net, on Sat, Feb 26, 2005 at 03:49:49PM +0900:
Re: Patch that enables https in open-uri.rb
In article <41EAB707.7020808@ntecs.de>,
Michael Neumann <mneumann@ntecs.de> writes:
> Hm, yes, you're right. I don't know how to do it, or whether that would
> fit into open-uri.
The problem is ruby has no CA certificates.
If OS provides it, open-uri can support https as follows.
(It checks /etc/ssl/certs/ca-certificates.crt which is provided by
Debian ca-certificates package.)
Any comments?
Index: lib/open-uri.rb
===================================================================
RCS file: /src/ruby/lib/open-uri.rb,v
retrieving revision 1.28
diff -u -p -r1.28 open-uri.rb
--- lib/open-uri.rb 5 Feb 2005 14:13:27 -0000 1.28
+++ lib/open-uri.rb 5 Feb 2005 14:14:25 -0000
@@ -539,9 +539,8 @@ module URI
header['host'] += ":#{uri.port}" if uri.port
end
- require 'net/http'
resp = nil
- Net::HTTP.start(self.host, self.port) {|http|
+ http_start(self.host, self.port) {|http|
http.request_get(uri.to_s, header) {|response|
resp = response
if options[:content_length_proc] && Net::HTTPSuccess === resp
@@ -576,11 +575,32 @@ module URI
end
include OpenURI::OpenRead
+
+ private
+ def http_start(host, port, &block)
+ require 'net/http'
+ Net::HTTP.start(host, port, &block)
+ end
end
class HTTPS
- def proxy_open(buf, uri, options) # :nodoc:
- raise ArgumentError, "open-uri doesn't support https."
+ private
+ def http_start(host, port, &block)
+ require 'net/https'
+ http = Net::HTTP.new(host, port)
+ http.verify_mode = OpenSSL::SSL::VERIFY_PEER
+ setup_ca_certificates(http)
+ http.use_ssl = true
+ http.start(&block)
+ end
+
+ def setup_ca_certificates(http)
+ if File.file? '/etc/ssl/certs/ca-certificates.crt'
+ # Debian ca-certificates package
+ http.ca_file = '/etc/ssl/certs/ca-certificates.crt'
+ else
+ raise SecurityError, 'CA certificates not found'
+ end
end
end
--
Tanaka Akira