http 3.1.0 → 3.2.0
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.
- checksums.yaml +4 -4
- data/CHANGES.md +8 -0
- data/lib/http/connection.rb +2 -1
- data/lib/http/timeout/global.rb +6 -6
- data/lib/http/timeout/null.rb +2 -2
- data/lib/http/timeout/per_operation.rb +4 -4
- data/lib/http/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5e1c6e74ac078db494c4b2196a43018b75db1dc
|
4
|
+
data.tar.gz: 8bf04adb251ff46dc31190ce865736c13c7317a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 702c1c5e63d582319859b9f6da99d4192141f6162237e593bb50e70e87cb0a54e0b6bcc43bfedce1e02cb1b7cc2c7cfbf18fcab903cf99a5b4f6362419a98d44
|
7
|
+
data.tar.gz: 44e4070afc9aeae5b0ba5c5f6c74d87df2c5a5656175e26d3cc485418316e84ec23c36dccd7e9b4d2a9595b09d117a1bdff0714cca432f337cc770b3840da222
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
## 3.2.0 (2018-04-22)
|
2
|
+
|
3
|
+
This vresion backports one change we missed to backport in previous release:
|
4
|
+
|
5
|
+
* Reduce memory usage when reading response body
|
6
|
+
([@janko-m])
|
7
|
+
|
8
|
+
|
1
9
|
## 3.1.0 (2018-04-22)
|
2
10
|
|
3
11
|
This version backports some of the fixes and improvements made to development
|
data/lib/http/connection.rb
CHANGED
@@ -35,6 +35,7 @@ module HTTP
|
|
35
35
|
@pending_request = false
|
36
36
|
@pending_response = false
|
37
37
|
@failed_proxy_connect = false
|
38
|
+
@buffer = "".b
|
38
39
|
|
39
40
|
@parser = Response::Parser.new
|
40
41
|
|
@@ -212,7 +213,7 @@ module HTTP
|
|
212
213
|
def read_more(size)
|
213
214
|
return if @parser.finished?
|
214
215
|
|
215
|
-
value = @socket.readpartial(size)
|
216
|
+
value = @socket.readpartial(size, @buffer)
|
216
217
|
if value == :eof
|
217
218
|
@parser << ""
|
218
219
|
:eof
|
data/lib/http/timeout/global.rb
CHANGED
@@ -48,8 +48,8 @@ module HTTP
|
|
48
48
|
end
|
49
49
|
|
50
50
|
# Read from the socket
|
51
|
-
def readpartial(size)
|
52
|
-
perform_io { read_nonblock(size) }
|
51
|
+
def readpartial(size, buffer = nil)
|
52
|
+
perform_io { read_nonblock(size, buffer) }
|
53
53
|
end
|
54
54
|
|
55
55
|
# Write to the socket
|
@@ -62,16 +62,16 @@ module HTTP
|
|
62
62
|
private
|
63
63
|
|
64
64
|
if RUBY_VERSION < "2.1.0"
|
65
|
-
def read_nonblock(size)
|
66
|
-
@socket.read_nonblock(size)
|
65
|
+
def read_nonblock(size, buffer = nil)
|
66
|
+
@socket.read_nonblock(size, buffer)
|
67
67
|
end
|
68
68
|
|
69
69
|
def write_nonblock(data)
|
70
70
|
@socket.write_nonblock(data)
|
71
71
|
end
|
72
72
|
else
|
73
|
-
def read_nonblock(size)
|
74
|
-
@socket.read_nonblock(size, :exception => false)
|
73
|
+
def read_nonblock(size, buffer = nil)
|
74
|
+
@socket.read_nonblock(size, buffer, :exception => false)
|
75
75
|
end
|
76
76
|
|
77
77
|
def write_nonblock(data)
|
data/lib/http/timeout/null.rb
CHANGED
@@ -39,9 +39,9 @@ module HTTP
|
|
39
39
|
# NIO with exceptions
|
40
40
|
if RUBY_VERSION < "2.1.0"
|
41
41
|
# Read data from the socket
|
42
|
-
def readpartial(size)
|
42
|
+
def readpartial(size, buffer = nil)
|
43
43
|
rescue_readable do
|
44
|
-
@socket.read_nonblock(size)
|
44
|
+
@socket.read_nonblock(size, buffer)
|
45
45
|
end
|
46
46
|
rescue EOFError
|
47
47
|
:eof
|
@@ -59,10 +59,10 @@ module HTTP
|
|
59
59
|
# NIO without exceptions
|
60
60
|
else
|
61
61
|
# Read data from the socket
|
62
|
-
def readpartial(size)
|
62
|
+
def readpartial(size, buffer = nil)
|
63
63
|
timeout = false
|
64
64
|
loop do
|
65
|
-
result = @socket.read_nonblock(size, :exception => false)
|
65
|
+
result = @socket.read_nonblock(size, buffer, :exception => false)
|
66
66
|
|
67
67
|
return :eof if result.nil?
|
68
68
|
return result if result != :wait_readable
|
data/lib/http/version.rb
CHANGED