net-http-persistent 1.6 → 1.6.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 CHANGED
Binary file
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ === 1.6.1 / 2011-03-08
2
+
3
+ * Bug Fix
4
+ * Net::HTTP::Persistent#request now handles Errno::EINVAL as a connection
5
+ reset and will be retried for idempotent requests.
6
+
1
7
  === 1.6 / 2011-03-01
2
8
 
3
9
  * Minor Engancement
data/README.txt CHANGED
@@ -1,12 +1,21 @@
1
1
  = net-http-persistent
2
2
 
3
3
  * http://seattlerb.rubyforge.org/net-http-persistent
4
+ * https://github.com/drbrain/net-http-persistent
4
5
 
5
6
  == DESCRIPTION:
6
7
 
7
- Persistent connections using Net::HTTP plus a speed fix for 1.8. It's
8
+ Manages persistent connections using Net::HTTP plus a speed fix for 1.8. It's
8
9
  thread-safe too!
9
10
 
11
+ Using persistent HTTP connections can dramatically increase the speed of HTTP.
12
+ Creating a new HTTP connection for every request involves an extra TCP
13
+ round-trip and causes TCP congestion avoidance negotiation to start over.
14
+
15
+ Net::HTTP supports persistent connections with some API methods but does not
16
+ handle reconnection gracefully. net-http-persistent supports reconnection
17
+ according to RFC 2616.
18
+
10
19
  == FEATURES/PROBLEMS:
11
20
 
12
21
  * Supports SSL
data/Rakefile CHANGED
@@ -5,11 +5,12 @@ require 'hoe'
5
5
 
6
6
  Hoe.plugin :git
7
7
  Hoe.plugin :minitest
8
- Hoe.plugin :rubyforge
9
8
 
10
9
  Hoe.spec 'net-http-persistent' do |p|
11
- self.rubyforge_name = 'seattlerb'
12
10
  developer 'Eric Hodel', 'drbrain@segment7.net'
11
+
12
+ rdoc_locations <<
13
+ 'docs.seattlerb.org:/data/www/docs.seattlerb.org/net-http-persistent/'
13
14
  end
14
15
 
15
16
  # vim: syntax=Ruby
@@ -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.6'
40
+ VERSION = '1.6.1'
41
41
 
42
42
  ##
43
43
  # Error class for errors raised by Net::HTTP::Persistent. Various
@@ -392,7 +392,8 @@ class Net::HTTP::Persistent
392
392
  bad_response = true
393
393
  retry
394
394
  rescue IOError, EOFError, Timeout::Error,
395
- Errno::ECONNABORTED, Errno::ECONNRESET, Errno::EPIPE => e
395
+ Errno::ECONNABORTED, Errno::ECONNRESET, Errno::EPIPE,
396
+ Errno::EINVAL => e
396
397
 
397
398
  if retried or not idempotent? req
398
399
  due_to = "(due to #{e.message} - #{e.class})"
@@ -522,6 +522,35 @@ class TestNetHttpPersistent < MiniTest::Unit::TestCase
522
522
  assert_equal 1, reqs[c.object_id]
523
523
  end
524
524
 
525
+ def test_request_invalid
526
+ c = basic_connection
527
+ def c.request(*a) raise Errno::EINVAL, "write" end
528
+
529
+ e = assert_raises Net::HTTP::Persistent::Error do
530
+ @http.request @uri
531
+ end
532
+
533
+ assert_equal 0, reqs[c.object_id]
534
+ assert_match %r%too many connection resets%, e.message
535
+ end
536
+
537
+ def test_request_invalid_retry
538
+ c = basic_connection
539
+ def c.request(*a)
540
+ if defined? @called then
541
+ Net::HTTPResponse.allocate
542
+ else
543
+ @called = true
544
+ raise Errno::EINVAL, "write"
545
+ end
546
+ end
547
+
548
+ @http.request @uri
549
+
550
+ assert c.reset?
551
+ assert c.finished?
552
+ end
553
+
525
554
  def test_request_reset
526
555
  c = basic_connection
527
556
  def c.request(*a) raise Errno::ECONNRESET 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: 3
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 6
9
- version: "1.6"
9
+ - 1
10
+ version: 1.6.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: 2011-03-01 00:00:00 -08:00
39
+ date: 2011-03-08 00:00:00 -08:00
39
40
  default_executable:
40
41
  dependencies:
41
42
  - !ruby/object:Gem::Dependency
@@ -54,41 +55,33 @@ dependencies:
54
55
  version: 2.0.2
55
56
  type: :development
56
57
  version_requirements: *id001
57
- - !ruby/object:Gem::Dependency
58
- name: rubyforge
59
- prerelease: false
60
- requirement: &id002 !ruby/object:Gem::Requirement
61
- none: false
62
- requirements:
63
- - - ">="
64
- - !ruby/object:Gem::Version
65
- hash: 7
66
- segments:
67
- - 2
68
- - 0
69
- - 4
70
- version: 2.0.4
71
- type: :development
72
- version_requirements: *id002
73
58
  - !ruby/object:Gem::Dependency
74
59
  name: hoe
75
60
  prerelease: false
76
- requirement: &id003 !ruby/object:Gem::Requirement
61
+ requirement: &id002 !ruby/object:Gem::Requirement
77
62
  none: false
78
63
  requirements:
79
64
  - - ">="
80
65
  - !ruby/object:Gem::Version
81
- hash: 43
66
+ hash: 41
82
67
  segments:
83
68
  - 2
84
69
  - 9
85
- - 0
86
- version: 2.9.0
70
+ - 1
71
+ version: 2.9.1
87
72
  type: :development
88
- version_requirements: *id003
73
+ version_requirements: *id002
89
74
  description: |-
90
- Persistent connections using Net::HTTP plus a speed fix for 1.8. It's
75
+ Manages persistent connections using Net::HTTP plus a speed fix for 1.8. It's
91
76
  thread-safe too!
77
+
78
+ Using persistent HTTP connections can dramatically increase the speed of HTTP.
79
+ Creating a new HTTP connection for every request involves an extra TCP
80
+ round-trip and causes TCP congestion avoidance negotiation to start over.
81
+
82
+ Net::HTTP supports persistent connections with some API methods but does not
83
+ handle reconnection gracefully. net-http-persistent supports reconnection
84
+ according to RFC 2616.
92
85
  email:
93
86
  - drbrain@segment7.net
94
87
  executables: []
@@ -139,10 +132,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
132
  version: "0"
140
133
  requirements: []
141
134
 
142
- rubyforge_project: seattlerb
143
- rubygems_version: 1.6.0
135
+ rubyforge_project: net-http-persistent
136
+ rubygems_version: 1.6.1
144
137
  signing_key:
145
138
  specification_version: 3
146
- summary: Persistent connections using Net::HTTP plus a speed fix for 1.8
139
+ summary: Manages persistent connections using Net::HTTP plus a speed fix for 1.8
147
140
  test_files:
148
141
  - test/test_net_http_persistent.rb
metadata.gz.sig CHANGED
Binary file