diff options
Diffstat (limited to 'lib/uri/generic.rb')
-rw-r--r-- | lib/uri/generic.rb | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/lib/uri/generic.rb b/lib/uri/generic.rb index a96810146..c1d0d63ca 100644 --- a/lib/uri/generic.rb +++ b/lib/uri/generic.rb @@ -265,23 +265,22 @@ Object # methods for userinfo # def check_userinfo(user, password = nil) - if (user || password) && - (@registry || @opaque) - raise InvalidURIError, - "can not set userinfo with registry or opaque" - end - if !password user, password = split_userinfo(user) end check_user(user) - check_password(password) + check_password(password, user) return true end private :check_userinfo def check_user(v) + if @registry || @opaque + raise InvalidURIError, + "can not set user with registry or opaque" + end + return v unless v if USERINFO !~ v @@ -293,10 +292,14 @@ Object end private :check_user - def check_password(v) + def check_password(v, user = @user) + if @registry || @opaque + raise InvalidURIError, + "can not set password with registry or opaque" + end return v unless v - if !@password + if !user raise InvalidURIError, "password component depends user component" end |