Object
Manages sessions for a HTTPClient instance.
# File lib/httpclient/session.rb, line 121 def initialize(client) @client = client @proxy = client.proxy @agent_name = nil @from = nil @protocol_version = nil @debug_dev = client.debug_dev @socket_sync = true @chunk_size = ::HTTP::Message::Body::DEFAULT_CHUNK_SIZE @connect_timeout = 60 @connect_retry = 1 @send_timeout = 120 @receive_timeout = 60 # For each read_block_size bytes @keep_alive_timeout = 15 # '15' is from Apache 2 default @read_block_size = 1024 * 16 # follows net/http change in 1.8.7 @protocol_retry_count = 5 @ssl_config = nil @test_loopback_http_response = [] @transparent_gzip_decompression = false @socket_local = Site.new @sess_pool = {} @sess_pool_mutex = Mutex.new @sess_pool_last_checked = Time.now end
# File lib/httpclient/session.rb, line 186 def invalidate(site) @sess_pool_mutex.synchronize do if pool = @sess_pool[site] pool.each do |sess| sess.invalidate end end end end
assert: sess.last_used must not be nil
# File lib/httpclient/session.rb, line 182 def keep(sess) add_cached_session(sess) end
# File lib/httpclient/session.rb, line 152 def proxy=(proxy) if proxy.nil? @proxy = nil else @proxy = Site.new(proxy) end end
# File lib/httpclient/session.rb, line 160 def query(req, via_proxy) req.http_body.chunk_size = @chunk_size sess = open(req.header.request_uri, via_proxy) begin sess.query(req) rescue sess.close raise end sess end
Generated with the Darkfish Rdoc Generator 2.