protocol-http1 0.14.0 → 0.14.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of protocol-http1 might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 972a37dfc7d2658f54c796f85054bec8bdb2827e595a42b874d276d320015aa7
4
- data.tar.gz: d50ec1a04e61727cb104e7d1224e90bd8c4dc63f41e71854b2376463456ee8ba
3
+ metadata.gz: 41a5950eeaafb157d2d4e52b00eb3ea42f509b6c43514d3cf5c5449912ab940f
4
+ data.tar.gz: e8f2b0f46f39b8e332ee45a732aa186b24f9d83cdeec2bd13b2ac619081dbfa6
5
5
  SHA512:
6
- metadata.gz: d19773f15978c311cfba29096fdf6026279c04ee458db6492811368f9251cd54cb697db12f06f748d3130308cf91341a0377933a8c57f07dfceb805380212da1
7
- data.tar.gz: 2b804b15e98404899673468bc63f35adf3417d0e6a31e54e3cb77d262c65918242b062de9fa72e302c5b99403482ff1b8f5ec3ce43bf0bb43215d21d0dd91cac
6
+ metadata.gz: 7d46d17db36223ddc01cab220eb12780aa463a0a87e520b06b375248a4d79c74512e1c5fd2299bb30aa8479514657f8611508114954ef03b8edf867590d74bf2
7
+ data.tar.gz: a627ea0d0dfabe5759d1b87c575e5ab17eea367acc2b622155443cf28ba9bd7e9f4368a7d05fcc8ef58bcac9dcb80b06a4fb95de3d7189993fc00818ba37cb23
checksums.yaml.gz.sig ADDED
@@ -0,0 +1,4 @@
1
+ {@'ݑ��W� ��T��J;|>�u�ܵ�2ZB
2
+ Uԑ�����=Nߔ+�y#*���KrH-�P9�v�P�5� ��q2A�v �ɓG+� �%�F��v3��_w=
3
+ ��6V�2!1i[���-+�o��!�&���H��M,RoMM3&����4��ˬ�0���g*�r!
4
+ �/&���x›
@@ -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 @persistent and version == HTTP11
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)
@@ -22,6 +22,6 @@
22
22
 
23
23
  module Protocol
24
24
  module HTTP1
25
- VERSION = "0.14.0"
25
+ VERSION = "0.14.3"
26
26
  end
27
27
  end
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.0
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
- date: 2021-04-23 00:00:00.000000000 Z
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.2
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