protocol-http1 0.14.0 → 0.14.3
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.
Potentially problematic release.
This version of protocol-http1 might be problematic. Click here for more details.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +4 -0
- data/lib/protocol/http1/body/chunked.rb +7 -2
- data/lib/protocol/http1/connection.rb +8 -1
- data/lib/protocol/http1/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +35 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41a5950eeaafb157d2d4e52b00eb3ea42f509b6c43514d3cf5c5449912ab940f
|
4
|
+
data.tar.gz: e8f2b0f46f39b8e332ee45a732aa186b24f9d83cdeec2bd13b2ac619081dbfa6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d46d17db36223ddc01cab220eb12780aa463a0a87e520b06b375248a4d79c74512e1c5fd2299bb30aa8479514657f8611508114954ef03b8edf867590d74bf2
|
7
|
+
data.tar.gz: a627ea0d0dfabe5759d1b87c575e5ab17eea367acc2b622155443cf28ba9bd7e9f4368a7d05fcc8ef58bcac9dcb80b06a4fb95de3d7189993fc00818ba37cb23
|
checksums.yaml.gz.sig
ADDED
@@ -56,6 +56,7 @@ module Protocol
|
|
56
56
|
def read
|
57
57
|
return nil if @finished
|
58
58
|
|
59
|
+
# It is possible this line contains chunk extension, so we use `to_i` to only consider the initial integral part:
|
59
60
|
length = read_line.to_i(16)
|
60
61
|
|
61
62
|
if length == 0
|
@@ -84,12 +85,16 @@ module Protocol
|
|
84
85
|
|
85
86
|
private
|
86
87
|
|
87
|
-
def read_line
|
88
|
+
def read_line?
|
88
89
|
@stream.gets(CRLF, chomp: true)
|
89
90
|
end
|
90
91
|
|
92
|
+
def read_line
|
93
|
+
read_line? or raise EOFError
|
94
|
+
end
|
95
|
+
|
91
96
|
def read_trailer
|
92
|
-
while line = read_line
|
97
|
+
while line = read_line?
|
93
98
|
# Empty line indicates end of trailer:
|
94
99
|
break if line.empty?
|
95
100
|
|
@@ -366,6 +366,13 @@ module Protocol
|
|
366
366
|
end
|
367
367
|
|
368
368
|
def write_body(version, body, head = false, trailer = nil)
|
369
|
+
# HTTP/1.0 cannot in any case handle trailers.
|
370
|
+
if version == HTTP10 # or te: trailers was not present (strictly speaking not required.)
|
371
|
+
trailer = nil
|
372
|
+
end
|
373
|
+
|
374
|
+
# While writing the body, we don't know if trailers will be added. We must choose a different body format depending on whether there is the chance of trailers, even if trailer.any? is currently false.
|
375
|
+
|
369
376
|
if body.nil?
|
370
377
|
write_connection_header(version)
|
371
378
|
write_empty_body(body)
|
@@ -376,7 +383,7 @@ module Protocol
|
|
376
383
|
# Even thought this code is the same as the first clause `body.nil?`, HEAD responses have an empty body but still carry a content length. `write_fixed_length_body` takes care of this appropriately.
|
377
384
|
write_connection_header(version)
|
378
385
|
write_empty_body(body)
|
379
|
-
elsif
|
386
|
+
elsif version == HTTP11
|
380
387
|
write_connection_header(version)
|
381
388
|
# We specifically ensure that non-persistent connections do not use chunked response, so that hijacking works as expected.
|
382
389
|
write_chunked_body(body, head, trailer)
|
data.tar.gz.sig
ADDED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,45 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protocol-http1
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.14.
|
4
|
+
version: 0.14.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
|
+
- Brian Morearty
|
9
|
+
- Bruno Sutic
|
10
|
+
- Olle Jonsson
|
8
11
|
autorequire:
|
9
12
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
|
13
|
+
cert_chain:
|
14
|
+
- |
|
15
|
+
-----BEGIN CERTIFICATE-----
|
16
|
+
MIIEhDCCAuygAwIBAgIBATANBgkqhkiG9w0BAQsFADA3MTUwMwYDVQQDDCxzYW11
|
17
|
+
ZWwud2lsbGlhbXMvREM9b3Jpb250cmFuc2Zlci9EQz1jby9EQz1uejAeFw0yMTA4
|
18
|
+
MTYwNjMzNDRaFw0yMjA4MTYwNjMzNDRaMDcxNTAzBgNVBAMMLHNhbXVlbC53aWxs
|
19
|
+
aWFtcy9EQz1vcmlvbnRyYW5zZmVyL0RDPWNvL0RDPW56MIIBojANBgkqhkiG9w0B
|
20
|
+
AQEFAAOCAY8AMIIBigKCAYEAyXLSS/cw+fXJ5e7hi+U/TeChPWeYdwJojDsFY1xr
|
21
|
+
xvtqbTTL8gbLHz5LW3QD2nfwCv3qTlw0qI3Ie7a9VMJMbSvgVEGEfQirqIgJXWMj
|
22
|
+
eNMDgKsMJtC7u/43abRKx7TCURW3iWyR19NRngsJJmaR51yGGGm2Kfsr+JtKKLtL
|
23
|
+
L188Wm3f13KAx7QJU8qyuBnj1/gWem076hzdA7xi1DbrZrch9GCRz62xymJlrJHn
|
24
|
+
9iZEZ7AxrS7vokhMlzSr/XMUihx/8aFKtk+tMLClqxZSmBWIErWdicCGTULXCBNb
|
25
|
+
E/mljo4zEVKhlTWpJklMIhr55ZRrSarKFuW7en0+tpJrfsYiAmXMJNi4XAYJH7uL
|
26
|
+
rgJuJwSaa/dMz+VmUoo7VKtSfCoOI+6v5/z0sK3oT6sG6ZwyI47DBq2XqNC6tnAj
|
27
|
+
w+XmCywiTQrFzMMAvcA7rPI4F0nU1rZId51rOvvfxaONp+wgTi4P8owZLw0/j0m4
|
28
|
+
8C20DYi6EYx4AHDXiLpElWh3AgMBAAGjgZowgZcwCQYDVR0TBAIwADALBgNVHQ8E
|
29
|
+
BAMCBLAwHQYDVR0OBBYEFB6ZaeWKxQjGTI+pmz7cKRmMIywwMC4GA1UdEQQnMCWB
|
30
|
+
I3NhbXVlbC53aWxsaWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MC4GA1UdEgQnMCWB
|
31
|
+
I3NhbXVlbC53aWxsaWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MA0GCSqGSIb3DQEB
|
32
|
+
CwUAA4IBgQBVoM+pu3dpdUhZM1w051iw5GfiqclAr1Psypf16Tiod/ho//4oAu6T
|
33
|
+
9fj3DPX/acWV9P/FScvqo4Qgv6g4VWO5ZU7z2JmPoTXZtYMunRAmQPFL/gSUc6aK
|
34
|
+
vszMHIyhtyzRc6DnfW2AiVOjMBjaYv8xXZc9bduniRVPrLR4J7ozmGLh4o4uJp7w
|
35
|
+
x9KCFaR8Lvn/r0oJWJOqb/DMAYI83YeN2Dlt3jpwrsmsONrtC5S3gOUle5afSGos
|
36
|
+
bYt5ocnEpKSomR9ZtnCGljds/aeO1Xgpn2r9HHcjwnH346iNrnHmMlC7BtHUFPDg
|
37
|
+
Ts92S47PTOXzwPBDsrFiq3VLbRjHSwf8rpqybQBH9MfzxGGxTaETQYOd6b4e4Ag6
|
38
|
+
y92abGna0bmIEb4+Tx9rQ10Uijh1POzvr/VTH4bbIPy9FbKrRsIQ24qDbNJRtOpE
|
39
|
+
RAOsIl+HOBTb252nx1kIRN5hqQx272AJCbCjKx8egcUQKffFVVCI0nye09v5CK+a
|
40
|
+
HiLJ8VOFx6w=
|
41
|
+
-----END CERTIFICATE-----
|
42
|
+
date: 2022-05-01 00:00:00.000000000 Z
|
12
43
|
dependencies:
|
13
44
|
- !ruby/object:Gem::Dependency
|
14
45
|
name: protocol-http
|
@@ -127,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
158
|
- !ruby/object:Gem::Version
|
128
159
|
version: '0'
|
129
160
|
requirements: []
|
130
|
-
rubygems_version: 3.1.
|
161
|
+
rubygems_version: 3.1.6
|
131
162
|
signing_key:
|
132
163
|
specification_version: 4
|
133
164
|
summary: A low level implementation of the HTTP/1 protocol.
|
metadata.gz.sig
ADDED
Binary file
|