protocol-http1 0.17.0 → 0.19.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
- checksums.yaml.gz.sig +3 -1
- data/lib/protocol/http1/body/remainder.rb +8 -2
- data/lib/protocol/http1/connection.rb +8 -0
- data/lib/protocol/http1/version.rb +2 -2
- data/license.md +2 -1
- data.tar.gz.sig +0 -0
- metadata +4 -3
- 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: d7a6cf842ade6ce23877b507858ce512bfcc0de8866d509c7a0fdb0244a24269
|
4
|
+
data.tar.gz: 72021fd23b1e6be7335af6022d419f1e045f5bf11f1e534ddad0d6fb5fa2d994
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96e579125e0510b1a0f3d2fb8c292fb8d4b24da565031b5b07aa329514a7e181af83cf8dfb3bb7ab35b88a1963c7d13e60a27c319c86d649d8e84effee8e58a7
|
7
|
+
data.tar.gz: 87f542d92abd2aea50a88c5601743a6298beb91ddddb22580b61f14c9ef078c797ca529d589233888e8f92fc34ddc17fdc8df2d121bcfd5811245de094c8da18
|
checksums.yaml.gz.sig
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# Released under the MIT License.
|
4
|
-
# Copyright, 2019-
|
4
|
+
# Copyright, 2019-2024, by Samuel Williams.
|
5
5
|
|
6
6
|
require 'protocol/http/body/readable'
|
7
7
|
|
@@ -14,15 +14,17 @@ module Protocol
|
|
14
14
|
# block_size may be removed in the future. It is better managed by stream.
|
15
15
|
def initialize(stream)
|
16
16
|
@stream = stream
|
17
|
+
@empty = false
|
17
18
|
end
|
18
19
|
|
19
20
|
def empty?
|
20
|
-
@
|
21
|
+
@empty or @stream.closed?
|
21
22
|
end
|
22
23
|
|
23
24
|
def close(error = nil)
|
24
25
|
# We can't really do anything in this case except close the connection.
|
25
26
|
@stream.close
|
27
|
+
@empty = true
|
26
28
|
|
27
29
|
super
|
28
30
|
end
|
@@ -31,6 +33,8 @@ module Protocol
|
|
31
33
|
def read
|
32
34
|
@stream.readpartial(BLOCK_SIZE)
|
33
35
|
rescue EOFError, IOError
|
36
|
+
@empty = true
|
37
|
+
|
34
38
|
# I noticed that in some cases you will get EOFError, and in other cases IOError!?
|
35
39
|
return nil
|
36
40
|
end
|
@@ -45,6 +49,8 @@ module Protocol
|
|
45
49
|
|
46
50
|
def join
|
47
51
|
@stream.read
|
52
|
+
ensure
|
53
|
+
@empty = true
|
48
54
|
end
|
49
55
|
|
50
56
|
def inspect
|
@@ -5,6 +5,7 @@
|
|
5
5
|
# Copyright, 2019, by Brian Morearty.
|
6
6
|
# Copyright, 2020, by Bruno Sutic.
|
7
7
|
# Copyright, 2023, by Thomas Morgan.
|
8
|
+
# Copyright, 2024, by Anton Zhuravsky.
|
8
9
|
|
9
10
|
require 'protocol/http/headers'
|
10
11
|
|
@@ -104,6 +105,13 @@ module Protocol
|
|
104
105
|
def write_upgrade_header(upgrade)
|
105
106
|
@stream.write("connection: upgrade\r\nupgrade: #{upgrade}\r\n")
|
106
107
|
end
|
108
|
+
|
109
|
+
# Indicates whether the connection has been hijacked meaning its
|
110
|
+
# IO has been handed over and is not usable anymore.
|
111
|
+
# @return [Boolean] hijack status
|
112
|
+
def hijacked?
|
113
|
+
@stream.nil?
|
114
|
+
end
|
107
115
|
|
108
116
|
# Effectively close the connection and return the underlying IO.
|
109
117
|
# @return [IO] the underlying non-blocking IO.
|
data/license.md
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
# MIT License
|
2
2
|
|
3
|
-
Copyright, 2019-
|
3
|
+
Copyright, 2019-2024, by Samuel Williams.
|
4
4
|
Copyright, 2019, by Brian Morearty.
|
5
5
|
Copyright, 2020, by Olle Jonsson.
|
6
6
|
Copyright, 2020, by Bruno Sutic.
|
7
7
|
Copyright, 2023, by Thomas Morgan.
|
8
|
+
Copyright, 2024, by Anton Zhuravsky.
|
8
9
|
|
9
10
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
10
11
|
of this software and associated documentation files (the "Software"), to deal
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protocol-http1
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
8
|
- Thomas Morgan
|
9
|
+
- Anton Zhuravsky
|
9
10
|
- Brian Morearty
|
10
11
|
- Bruno Sutic
|
11
12
|
- Olle Jonsson
|
@@ -41,7 +42,7 @@ cert_chain:
|
|
41
42
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
42
43
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
43
44
|
-----END CERTIFICATE-----
|
44
|
-
date:
|
45
|
+
date: 2024-04-05 00:00:00.000000000 Z
|
45
46
|
dependencies:
|
46
47
|
- !ruby/object:Gem::Dependency
|
47
48
|
name: protocol-http
|
@@ -92,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
93
|
- !ruby/object:Gem::Version
|
93
94
|
version: '0'
|
94
95
|
requirements: []
|
95
|
-
rubygems_version: 3.
|
96
|
+
rubygems_version: 3.5.3
|
96
97
|
signing_key:
|
97
98
|
specification_version: 4
|
98
99
|
summary: A low level implementation of the HTTP/1 protocol.
|
metadata.gz.sig
CHANGED
Binary file
|