зеркало из https://github.com/github/ruby.git
* lib/xmlrpc/utils.rb: Patch by Nobuhiro IMAI fixes the following
problem: Default value modification on Module#public_instance_methods (false -> true) breaks s.add_handler(XMLRPC::iPIMethods("sample"), MyHandler.new) style security protection. * lib/xmlrpc/client.rb: Aliased XMLRPC::Client#new2 as XMLRPC::Client#new_from_uri, and #new3 as #new_from_hash. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
716f1d3cbe
Коммит
4110c8936a
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
|||
Sun Jun 19 17:22:02 CEST 2005 Michael Neumann <mneumann@ruby-lang.org>
|
||||
|
||||
* lib/xmlrpc/utils.rb: Patch by Nobuhiro IMAI fixes the following
|
||||
problem: Default value modification on
|
||||
Module#public_instance_methods (false -> true) breaks
|
||||
s.add_handler(XMLRPC::iPIMethods("sample"), MyHandler.new) style
|
||||
security protection.
|
||||
|
||||
* lib/xmlrpc/client.rb: Aliased XMLRPC::Client#new2 as
|
||||
XMLRPC::Client#new_from_uri, and #new3 as #new_from_hash.
|
||||
|
||||
Sun Jun 19 14:09:07 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* gc.c (run_final): reduce unnecessary object allocation during
|
||||
|
|
|
@ -69,6 +69,7 @@ call on the remote-side and of course the parameters for the remote procedure.
|
|||
Parameter ((|timeout|)) is the time to wait for a XML-RPC response, defaults to 30.
|
||||
|
||||
--- XMLRPC::Client.new2( uri, proxy=nil, timeout=nil)
|
||||
--- XMLRPC::Client.new_from_uri( uri, proxy=nil, timeout=nil)
|
||||
: uri
|
||||
URI specifying protocol (http or https), host, port, path, user and password.
|
||||
Example: https://user:password@host:port/path
|
||||
|
@ -80,6 +81,7 @@ call on the remote-side and of course the parameters for the remote procedure.
|
|||
Defaults to 30.
|
||||
|
||||
--- XMLRPC::Client.new3( hash={} )
|
||||
--- XMLRPC::Client.new_from_hash( hash={} )
|
||||
Parameter ((|hash|)) has following case-insensitive keys:
|
||||
* host
|
||||
* path
|
||||
|
@ -135,6 +137,8 @@ call on the remote-side and of course the parameters for the remote procedure.
|
|||
(({XMLRPC::FaultException})).
|
||||
Both are explained in ((<call|XMLRPC::Client#call>)).
|
||||
|
||||
Simple to remember: The "2" in "call2" denotes the number of values it returns.
|
||||
|
||||
--- XMLRPC::Client#multicall( *methods )
|
||||
You can use this method to execute several methods on a XMLRPC server which supports
|
||||
the multi-call extension.
|
||||
|
@ -331,7 +335,9 @@ module XMLRPC
|
|||
end
|
||||
|
||||
|
||||
def self.new2(uri, proxy=nil, timeout=nil)
|
||||
class << self
|
||||
|
||||
def new2(uri, proxy=nil, timeout=nil)
|
||||
if match = /^([^:]+):\/\/(([^@]+)@)?([^\/]+)(\/.*)?$/.match(uri)
|
||||
proto = match[1]
|
||||
user, passwd = (match[3] || "").split(":")
|
||||
|
@ -350,9 +356,10 @@ module XMLRPC
|
|||
|
||||
self.new(host, path, port, proxy_host, proxy_port, user, passwd, (proto == "https"), timeout)
|
||||
end
|
||||
|
||||
|
||||
def self.new3(hash={})
|
||||
alias new_from_uri new2
|
||||
|
||||
def new3(hash={})
|
||||
|
||||
# convert all keys into lowercase strings
|
||||
h = {}
|
||||
|
@ -362,6 +369,10 @@ module XMLRPC
|
|||
h['use_ssl'], h['timeout'])
|
||||
end
|
||||
|
||||
alias new_from_hash new3
|
||||
|
||||
end
|
||||
|
||||
|
||||
# Attribute Accessors -------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -131,7 +131,7 @@ module XMLRPC
|
|||
|
||||
def get_methods(obj, delim=".")
|
||||
prefix = @prefix + delim
|
||||
obj.class.public_instance_methods.collect { |name|
|
||||
obj.class.public_instance_methods(false).collect { |name|
|
||||
[prefix + name, obj.method(name).to_proc, nil, nil]
|
||||
}
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче