tp2 0.13 → 0.13.2
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/.rubocop.yml +1 -0
- data/CHANGELOG.md +8 -0
- data/bin/tp2 +1 -0
- data/lib/tp2/http1_connection.rb +8 -8
- data/lib/tp2/logger.rb +12 -10
- data/lib/tp2/server.rb +1 -1
- data/lib/tp2/version.rb +1 -1
- data/lib/tp2.rb +2 -0
- data/test/test_server.rb +1 -0
- metadata +2 -2
- /data/test/{test_http1_adapter.rb → test_http1_connection.rb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 527cc2a7f8af120c75fa7e889ad78997a9e4cda154248f6fa5770b48afbaa148
|
4
|
+
data.tar.gz: 770630c4e47412b7f8af5379c8ae8ee23cf9c768f983fe0d9f4aaf95598f290f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 414dae69185f3dfadf66e1e7d20765d6dcdeb49dd1a5aab759346ea82603ce35bacec5de44dc82f855fba488454b8672e29b7fa4a0ea654192f696448fdcd050
|
7
|
+
data.tar.gz: 04f7b6e58da3d618975912706edc9e72247301bfceacd78acfffec469ea772cfa8273e2b614ad54b4de05f9c0a7be311b64aa7d869fbc8b0de9e55fa313be946
|
data/.rubocop.yml
CHANGED
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,6 +8,18 @@ module TP2
|
|
8
8
|
@opts = opts
|
9
9
|
end
|
10
10
|
|
11
|
+
# @param o <Qeweney::Request> request
|
12
|
+
# @param h <Hash, nil> response headers
|
13
|
+
def call(o, h = nil)
|
14
|
+
log(format_log_line(o, h))
|
15
|
+
rescue StandardError => e
|
16
|
+
p e: e
|
17
|
+
p e.backtrace
|
18
|
+
exit
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
11
23
|
def log(str)
|
12
24
|
str = format(
|
13
25
|
"%<stamp>s %<msg>s\n",
|
@@ -17,16 +29,6 @@ module TP2
|
|
17
29
|
@machine.write_async(@fd, str)
|
18
30
|
end
|
19
31
|
|
20
|
-
# @param o <Qeweney::Request> request
|
21
|
-
# @param h <Hash, nil> response headers
|
22
|
-
def call(o, h = nil)
|
23
|
-
log(format_log_line(o, h))
|
24
|
-
rescue => e
|
25
|
-
p e: e
|
26
|
-
p e.backtrace
|
27
|
-
exit!
|
28
|
-
end
|
29
|
-
|
30
32
|
def format_log_line(o, h)
|
31
33
|
case o
|
32
34
|
when Exception
|
data/lib/tp2/server.rb
CHANGED
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/test/test_server.rb
CHANGED
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:
|
4
|
+
version: 0.13.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
@@ -79,7 +79,7 @@ files:
|
|
79
79
|
- lib/tp2/version.rb
|
80
80
|
- test/helper.rb
|
81
81
|
- test/run.rb
|
82
|
-
- test/
|
82
|
+
- test/test_http1_connection.rb
|
83
83
|
- test/test_server.rb
|
84
84
|
- tp2.gemspec
|
85
85
|
homepage: https://github.com/noteflakes/tp2
|
File without changes
|