diff options
Diffstat (limited to 'lib/soap/netHttpClient.rb')
-rw-r--r-- | lib/soap/netHttpClient.rb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/soap/netHttpClient.rb b/lib/soap/netHttpClient.rb index 1e9d71c5a3..5b16a5b443 100644 --- a/lib/soap/netHttpClient.rb +++ b/lib/soap/netHttpClient.rb @@ -26,13 +26,17 @@ class NetHttpClient attr_accessor :debug_dev attr_accessor :ssl_config # ignored for now. attr_accessor :protocol_version # ignored for now. + attr_accessor :connect_timeout + attr_accessor :send_timeout # ignored for now. + attr_accessor :receive_timeout def initialize(proxy = nil, agent = nil) @proxy = proxy ? URI.parse(proxy) : nil @agent = agent @debug_dev = nil @session_manager = SessionManager.new - @no_proxy = nil + @no_proxy = @ssl_config = @protocol_version = nil + @connect_timeout = @send_timeout = @receive_timeout = nil end def test_loopback_response @@ -55,6 +59,7 @@ class NetHttpClient def set_basic_auth(uri, user_id, passwd) # net/http does not handle url. @basic_auth = [user_id, passwd] + raise NotImplementedError.new("basic_auth is not supported under soap4r + net/http.") end def set_cookie_store(filename) @@ -99,7 +104,7 @@ private http = create_connection(url) response = nil http.start { |worker| - response, = yield(worker) + response = yield(worker) worker.finish } @debug_dev << response.body if @debug_dev @@ -116,6 +121,8 @@ private if http.respond_to?(:set_debug_output) http.set_debug_output(@debug_dev) end + http.open_timeout = @connect_timeout if @connect_timeout + http.read_timeout = @receive_timeout if @receive_timeout case url when URI::HTTPS if SSLEnabled |