diff options
Diffstat (limited to 'lib/soap/rpc/driver.rb')
-rw-r--r-- | lib/soap/rpc/driver.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/soap/rpc/driver.rb b/lib/soap/rpc/driver.rb index dd433ca33f..655174cf33 100644 --- a/lib/soap/rpc/driver.rb +++ b/lib/soap/rpc/driver.rb @@ -180,15 +180,21 @@ private def invoke(headers, body) set_wiredump_file_base(body.elename.name) - @proxy.invoke(headers, body) + env = @proxy.invoke(headers, body) + if env.nil? + return nil, nil + else + return env.header, env.body + end end def call(name, *params) set_wiredump_file_base(name) # Convert parameters: params array => SOAPArray => members array params = Mapping.obj2soap(params, @mapping_registry).to_a - header, body = @proxy.call(nil, name, *params) - raise EmptyResponseError.new("Empty response.") unless body + env = @proxy.call(nil, name, *params) + raise EmptyResponseError.new("Empty response.") unless env + header, body = env.header, env.body begin @proxy.check_fault(body) rescue SOAP::FaultError => e |