From 3916df613eb46f54e4ba91834fa920ac6f612d1b Mon Sep 17 00:00:00 2001 From: akira Date: Tue, 26 Feb 2002 02:36:05 +0000 Subject: * lib/uri/generic.rb: merge0 shuld return [oth, oth] if oth is absolute URI. * lib/uri/generic.rb: registry part must not be allowed for any schemes for the Internet. (RFC2396, section 3.2.2 and 3.2.1.) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ lib/uri.rb | 2 +- lib/uri/generic.rb | 14 +++++++++++++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 883212a05d..73aa4f2d31 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Tue Feb 26 11:25:50 2002 akira yamada + + * lib/uri/generic.rb: merge0 shuld return [oth, oth] if oth is + absolute URI. + + * lib/uri/generic.rb: registry part must not be allowed for any + schemes for the Internet. (RFC2396, section 3.2.2 and 3.2.1.) + Mon Feb 25 21:22:41 2002 Akinori MUSHA * ext/syslog/syslog.c: Merge from rough. Use SafeStringValue(). diff --git a/lib/uri.rb b/lib/uri.rb index 1832fb8d5d..d33f0c827f 100644 --- a/lib/uri.rb +++ b/lib/uri.rb @@ -15,7 +15,7 @@ =end module URI - VERSION_CODE = '000905'.freeze + VERSION_CODE = '000906'.freeze VERSION = VERSION_CODE.scan(/../).collect{|n| n.to_i}.join('.').freeze end diff --git a/lib/uri/generic.rb b/lib/uri/generic.rb index 1510e53eeb..e80c6f752b 100644 --- a/lib/uri/generic.rb +++ b/lib/uri/generic.rb @@ -54,6 +54,15 @@ Object self::COMPONENT end +=begin +--- URI::Generic::use_registry +=end + USE_REGISTRY = false + + def self.use_registry + self::USE_REGISTRY + end + =begin --- URI::Generic::build2 @@ -157,6 +166,9 @@ Object self.set_registry(registry) self.set_fragment(fragment) end + if @registry && !self.class.use_registry + raise InvalidURIError, "the scheme #{@scheme} does not accept registry part: #{@registry} (or bad hostname?)" + end @scheme.freeze if @scheme self.set_path('') if !@path && !@opaque # (see RFC2396 Section 5.2) @@ -803,7 +815,7 @@ Object if self.absolute? return self.dup, oth else - return oth.dup, self + return oth, oth end end private :merge0 -- cgit v1.2.3