tp2 0.13.1 → 0.13.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/bin/tp2 +1 -0
- data/lib/tp2/http1_connection.rb +8 -8
- data/lib/tp2/logger.rb +11 -9
- data/lib/tp2/version.rb +1 -1
- data/lib/tp2.rb +2 -0
- data/tp2.gemspec +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6eae8332a80f3b55275c7d589d6028adbec69e7d4e8f4d5f55308f009b40dd3b
|
4
|
+
data.tar.gz: aa04bb1e0d287466593df9c0e92a2f557013cc373c994487f43b8f00dfea2f42
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8c9d0709021e4f9b5e7e836496db047a861255ae2a8a363b4b6821d6145f046f1aeb684191bd953f0cb6e40dc984b4fc139d5680c41ef572f140d94e6402384
|
7
|
+
data.tar.gz: 7839bda35a0afae58e26ccf23ab3d31a39eab3528a709c7082462dfd563cbe74bac6cab18d082d22bc5d58956b3cdac18160092f289bd9c31d7aa0362c18c27b
|
data/CHANGELOG.md
CHANGED
data/bin/tp2
CHANGED
data/lib/tp2/http1_connection.rb
CHANGED
@@ -17,7 +17,6 @@ module TP2
|
|
17
17
|
|
18
18
|
@done = nil
|
19
19
|
@response_headers = nil
|
20
|
-
@status = nil
|
21
20
|
end
|
22
21
|
|
23
22
|
def run
|
@@ -27,8 +26,8 @@ module TP2
|
|
27
26
|
persist = serve_request
|
28
27
|
break if !persist
|
29
28
|
end
|
30
|
-
rescue UM::Terminate
|
31
|
-
#
|
29
|
+
rescue UM::Terminate
|
30
|
+
# server is terminated, do nothing
|
32
31
|
rescue StandardError => e
|
33
32
|
@logger&.call(e)
|
34
33
|
ensure
|
@@ -43,11 +42,12 @@ module TP2
|
|
43
42
|
request = Qeweney::Request.new(headers, self)
|
44
43
|
@app.call(request)
|
45
44
|
persist_connection?(headers)
|
46
|
-
rescue ProtocolError
|
47
|
-
|
45
|
+
rescue ProtocolError, SystemCallError => e
|
46
|
+
msg = "Error encountered while serving request: #{e.class} #{e.message}. Abandoning connection..."
|
47
|
+
@logger&.call(msg)
|
48
48
|
false
|
49
49
|
rescue StandardError => e
|
50
|
-
msg = "Internal error while serving request: #{e.message} (#{e.backtrace.inspect})"
|
50
|
+
msg = "Internal error while serving request: #{e.class} #{e.message} (#{e.backtrace.inspect}). Abandoning connection..."
|
51
51
|
@logger&.call(msg)
|
52
52
|
if request && !@done
|
53
53
|
respond(request, 'Internal server error', ':status' => Qeweney::Status::INTERNAL_SERVER_ERROR)
|
@@ -299,8 +299,8 @@ module TP2
|
|
299
299
|
# @param chunked [boolean] whether to use chunked transfer encoding
|
300
300
|
# @return [String] formatted response headers
|
301
301
|
def format_headers(headers, body, chunked)
|
302
|
-
|
303
|
-
lines = format_status_line(body,
|
302
|
+
status = headers[':status'] || (body ? Qeweney::Status::OK : Qeweney::Status::NO_CONTENT)
|
303
|
+
lines = format_status_line(body, status, chunked)
|
304
304
|
headers.each do |k, v|
|
305
305
|
next if k =~ INTERNAL_HEADER_REGEXP
|
306
306
|
|
data/lib/tp2/logger.rb
CHANGED
@@ -8,15 +8,6 @@ module TP2
|
|
8
8
|
@opts = opts
|
9
9
|
end
|
10
10
|
|
11
|
-
def log(str)
|
12
|
-
str = format(
|
13
|
-
"%<stamp>s %<msg>s\n",
|
14
|
-
stamp: Time.now.strftime('%Y-%m-%d %H:%M:%S.%3N'),
|
15
|
-
msg: str
|
16
|
-
)
|
17
|
-
@machine.write_async(@fd, str)
|
18
|
-
end
|
19
|
-
|
20
11
|
# @param o <Qeweney::Request> request
|
21
12
|
# @param h <Hash, nil> response headers
|
22
13
|
def call(o, h = nil)
|
@@ -27,6 +18,17 @@ module TP2
|
|
27
18
|
exit
|
28
19
|
end
|
29
20
|
|
21
|
+
private
|
22
|
+
|
23
|
+
def log(str)
|
24
|
+
str = format(
|
25
|
+
"%<stamp>s %<msg>s\n",
|
26
|
+
stamp: Time.now.strftime('%Y-%m-%d %H:%M:%S.%3N'),
|
27
|
+
msg: str
|
28
|
+
)
|
29
|
+
@machine.write_async(@fd, str)
|
30
|
+
end
|
31
|
+
|
30
32
|
def format_log_line(o, h)
|
31
33
|
case o
|
32
34
|
when Exception
|
data/lib/tp2/version.rb
CHANGED
data/lib/tp2.rb
CHANGED
@@ -37,6 +37,8 @@ module TP2
|
|
37
37
|
machine = opts[:machine] || UM.new
|
38
38
|
machine.puts(opts[:banner]) if opts[:banner]
|
39
39
|
|
40
|
+
opts[:logger]&.call("Running TP2 #{TP2::VERSION}, UringMachine #{UM::VERSION}, Ruby #{RUBY_VERSION}")
|
41
|
+
|
40
42
|
server = Server.new(machine, opts, &app)
|
41
43
|
|
42
44
|
setup_signal_handling(machine, Fiber.current)
|
data/tp2.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.required_ruby_version = '>= 3.4'
|
21
21
|
s.executables = ['tp2']
|
22
22
|
|
23
|
-
s.add_dependency 'uringmachine', '~> 0.
|
23
|
+
s.add_dependency 'uringmachine', '~> 0.16'
|
24
24
|
s.add_dependency 'qeweney', '~> 0.21'
|
25
25
|
s.add_dependency 'rack', '~> 3.1.15'
|
26
26
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tp2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
@@ -15,14 +15,14 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - "~>"
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: '0.
|
18
|
+
version: '0.16'
|
19
19
|
type: :runtime
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - "~>"
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: '0.
|
25
|
+
version: '0.16'
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: qeweney
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|