net-http-persistent 1.3 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +0 -0
- data/History.txt +6 -0
- data/lib/net/http/persistent.rb +8 -6
- data/test/test_net_http_persistent.rb +28 -0
- metadata +4 -3
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
data/lib/net/http/persistent.rb
CHANGED
@@ -37,7 +37,7 @@ class Net::HTTP::Persistent
|
|
37
37
|
##
|
38
38
|
# The version of Net::HTTP::Persistent use are using
|
39
39
|
|
40
|
-
VERSION = '1.3'
|
40
|
+
VERSION = '1.3.1'
|
41
41
|
|
42
42
|
##
|
43
43
|
# Error class for errors raised by Net::HTTP::Persistent. Various
|
@@ -198,6 +198,8 @@ class Net::HTTP::Persistent
|
|
198
198
|
|
199
199
|
def connection_for uri
|
200
200
|
Thread.current[@connection_key] ||= {}
|
201
|
+
Thread.current[@request_key] ||= Hash.new 0
|
202
|
+
|
201
203
|
connections = Thread.current[@connection_key]
|
202
204
|
|
203
205
|
net_http_args = [uri.host, uri.port]
|
@@ -208,16 +210,17 @@ class Net::HTTP::Persistent
|
|
208
210
|
net_http_args.concat @proxy_args
|
209
211
|
end
|
210
212
|
|
211
|
-
connections[connection_id]
|
212
|
-
|
213
|
+
unless connection = connections[connection_id] then
|
214
|
+
connections[connection_id] = Net::HTTP.new(*net_http_args)
|
215
|
+
connection = connections[connection_id]
|
216
|
+
ssl connection if uri.scheme == 'https'
|
217
|
+
end
|
213
218
|
|
214
219
|
unless connection.started? then
|
215
220
|
connection.set_debug_output @debug_output if @debug_output
|
216
221
|
connection.open_timeout = @open_timeout if @open_timeout
|
217
222
|
connection.read_timeout = @read_timeout if @read_timeout
|
218
223
|
|
219
|
-
ssl connection if uri.scheme == 'https'
|
220
|
-
|
221
224
|
connection.start
|
222
225
|
end
|
223
226
|
|
@@ -336,7 +339,6 @@ class Net::HTTP::Persistent
|
|
336
339
|
# it will be retried automatically.
|
337
340
|
|
338
341
|
def request uri, req = nil, &block
|
339
|
-
Thread.current[@request_key] ||= Hash.new 0
|
340
342
|
retried = false
|
341
343
|
bad_response = false
|
342
344
|
|
@@ -7,6 +7,18 @@ class Net::HTTP
|
|
7
7
|
alias orig_connect connect
|
8
8
|
|
9
9
|
def connect
|
10
|
+
return unless use_ssl?
|
11
|
+
|
12
|
+
io = open '/dev/null'
|
13
|
+
|
14
|
+
@ssl_context ||= OpenSSL::SSL::SSLContext.new
|
15
|
+
|
16
|
+
@ssl_context.verify_mode = OpenSSL::SSL::VERIFY_PEER unless
|
17
|
+
@ssl_context.verify_mode
|
18
|
+
|
19
|
+
s = OpenSSL::SSL::SSLSocket.new io, @ssl_context
|
20
|
+
|
21
|
+
@socket = Net::BufferedIO.new s
|
10
22
|
end
|
11
23
|
end
|
12
24
|
|
@@ -136,6 +148,22 @@ class TestNetHttpPersistent < MiniTest::Unit::TestCase
|
|
136
148
|
assert_same c, conns['example.com:80']
|
137
149
|
end
|
138
150
|
|
151
|
+
def test_connection_for_finished_ssl
|
152
|
+
uri = URI.parse 'https://example.com/path'
|
153
|
+
c = @http.connection_for uri
|
154
|
+
|
155
|
+
assert c.started?
|
156
|
+
assert c.use_ssl?
|
157
|
+
|
158
|
+
@http.finish c
|
159
|
+
|
160
|
+
refute c.started?
|
161
|
+
|
162
|
+
c2 = @http.connection_for uri
|
163
|
+
|
164
|
+
assert c2.started?
|
165
|
+
end
|
166
|
+
|
139
167
|
def test_connection_for_host_down
|
140
168
|
cached = Object.new
|
141
169
|
def cached.address; 'example.com' end
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-http-persistent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 3
|
9
|
-
|
9
|
+
- 1
|
10
|
+
version: 1.3.1
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Eric Hodel
|
@@ -35,7 +36,7 @@ cert_chain:
|
|
35
36
|
x52qPcexcYZR7w==
|
36
37
|
-----END CERTIFICATE-----
|
37
38
|
|
38
|
-
date: 2010-09-
|
39
|
+
date: 2010-09-13 00:00:00 -07:00
|
39
40
|
default_executable:
|
40
41
|
dependencies:
|
41
42
|
- !ruby/object:Gem::Dependency
|
metadata.gz.sig
CHANGED
Binary file
|