net-http-persistent 1.4.1 → 1.5

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/.gemtest ADDED
File without changes
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ === 1.5 / 2011-01-25
2
+
3
+ * Minor Enhancements
4
+ * Set TCP_NODELAY on created socket if possible. (This will only help for
5
+ requests that send bodies.)
6
+
1
7
  === 1.4.1 / 2010-10-13
2
8
 
3
9
  * Bug Fixes
data/Manifest.txt CHANGED
@@ -1,4 +1,5 @@
1
1
  .autotest
2
+ .gemtest
2
3
  History.txt
3
4
  Manifest.txt
4
5
  README.txt
@@ -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.4.1'
40
+ VERSION = '1.5'
41
41
 
42
42
  ##
43
43
  # Error class for errors raised by Net::HTTP::Persistent. Various
@@ -224,6 +224,11 @@ class Net::HTTP::Persistent
224
224
  connection.start
225
225
  end
226
226
 
227
+ if Socket.const_defined? :TCP_NODELAY then
228
+ socket = connection.instance_variable_get :@socket
229
+ socket.io.setsockopt Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1
230
+ end
231
+
227
232
  connection
228
233
  rescue Errno::ECONNREFUSED
229
234
  raise Error, "connection refused: #{connection.address}:#{connection.port}"
@@ -7,9 +7,17 @@ class Net::HTTP
7
7
  alias orig_connect connect
8
8
 
9
9
  def connect
10
- return unless use_ssl?
10
+ unless use_ssl? then
11
+ io = Object.new
12
+ def io.setsockopt(*a) @setsockopt = a end
13
+
14
+ @socket = Net::BufferedIO.new io
15
+
16
+ return
17
+ end
11
18
 
12
19
  io = open '/dev/null'
20
+ def io.setsockopt(*a) @setsockopt = a end
13
21
 
14
22
  @ssl_context ||= OpenSSL::SSL::SSLContext.new
15
23
 
@@ -51,9 +59,13 @@ class TestNetHttpPersistent < MiniTest::Unit::TestCase
51
59
  end
52
60
  def finish
53
61
  @finished += 1
62
+ @socket = nil
54
63
  end
55
64
  def start
56
65
  @started += 1
66
+ io = Object.new
67
+ def io.setsockopt(*a) @setsockopt = a end
68
+ @socket = Net::BufferedIO.new io
57
69
  end
58
70
  def reset?
59
71
  @started == @finished + 1
@@ -132,6 +144,15 @@ class TestNetHttpPersistent < MiniTest::Unit::TestCase
132
144
 
133
145
  assert_includes conns.keys, 'example.com:80'
134
146
  assert_same c, conns['example.com:80']
147
+
148
+ socket = c.instance_variable_get :@socket
149
+ expected = if Socket.const_defined? :TCP_NODELAY then
150
+ [Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1]
151
+ else
152
+ nil
153
+ end
154
+
155
+ assert_equal expected, socket.io.instance_variable_get(:@setsockopt)
135
156
  end
136
157
 
137
158
  def test_connection_for_cached
metadata CHANGED
@@ -5,9 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
- - 4
9
- - 1
10
- version: 1.4.1
8
+ - 5
9
+ version: "1.5"
11
10
  platform: ruby
12
11
  authors:
13
12
  - Eric Hodel
@@ -36,57 +35,41 @@ cert_chain:
36
35
  x52qPcexcYZR7w==
37
36
  -----END CERTIFICATE-----
38
37
 
39
- date: 2010-10-13 00:00:00 -07:00
38
+ date: 2011-01-25 00:00:00 -08:00
40
39
  default_executable:
41
40
  dependencies:
42
41
  - !ruby/object:Gem::Dependency
43
- name: rubyforge
42
+ name: minitest
44
43
  prerelease: false
45
44
  requirement: &id001 !ruby/object:Gem::Requirement
46
45
  none: false
47
46
  requirements:
48
47
  - - ">="
49
48
  - !ruby/object:Gem::Version
50
- hash: 7
49
+ hash: 11
51
50
  segments:
52
51
  - 2
53
52
  - 0
54
- - 4
55
- version: 2.0.4
53
+ - 2
54
+ version: 2.0.2
56
55
  type: :development
57
56
  version_requirements: *id001
58
57
  - !ruby/object:Gem::Dependency
59
- name: minitest
58
+ name: hoe
60
59
  prerelease: false
61
60
  requirement: &id002 !ruby/object:Gem::Requirement
62
61
  none: false
63
62
  requirements:
64
63
  - - ">="
65
64
  - !ruby/object:Gem::Version
66
- hash: 3
65
+ hash: 47
67
66
  segments:
68
- - 1
69
- - 5
67
+ - 2
68
+ - 8
70
69
  - 0
71
- version: 1.5.0
70
+ version: 2.8.0
72
71
  type: :development
73
72
  version_requirements: *id002
74
- - !ruby/object:Gem::Dependency
75
- name: hoe
76
- prerelease: false
77
- requirement: &id003 !ruby/object:Gem::Requirement
78
- none: false
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- hash: 21
83
- segments:
84
- - 2
85
- - 6
86
- - 1
87
- version: 2.6.1
88
- type: :development
89
- version_requirements: *id003
90
73
  description: |-
91
74
  Persistent connections using Net::HTTP plus a speed fix for 1.8. It's
92
75
  thread-safe too!
@@ -102,6 +85,7 @@ extra_rdoc_files:
102
85
  - README.txt
103
86
  files:
104
87
  - .autotest
88
+ - .gemtest
105
89
  - History.txt
106
90
  - Manifest.txt
107
91
  - README.txt
metadata.gz.sig CHANGED
Binary file