thin 1.8.0 → 1.8.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/CHANGELOG +9 -0
- data/lib/thin/backends/swiftiply_client.rb +11 -1
- data/lib/thin/daemonizing.rb +2 -2
- data/lib/thin/headers.rb +7 -0
- data/lib/thin/version.rb +2 -2
- 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: 32913c8b29b57b8f15fcd7cffb49db757989a225794e089ced01e53354c3cd90
|
4
|
+
data.tar.gz: f232efe452f20785ea8e71422a53147205ffd65ddbba90b8ba12e5b340c3b466
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2cf9f7764e73b4086d1a11156bcd1aa67e6e3cabc32076e404971f866e3d4f28b536375773d03bf54e8237d3755cb70399c421044cb7cb577801f2f1deefe4d8
|
7
|
+
data.tar.gz: ed2643e1bc850bea3bd868150cd5c6b198b440b585a99def2099c35122d7a663c928c508f7441c4d708df6c878296b0e5cafcf9ebcfe70ef6ac6a1ca645111fe
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== 1.8.2 Ruby Razor
|
2
|
+
* Ruby 3.2 support.
|
3
|
+
|
4
|
+
== 1.8.1 Infinite Smoothie
|
5
|
+
* Fix possible HTTP Response Splitting
|
6
|
+
|
7
|
+
== 1.8.0 Possessed Pickle
|
8
|
+
* Many things
|
9
|
+
|
1
10
|
== 1.7.2 Bachmanity
|
2
11
|
* Add config support for ssl_version and ssl_cipher_list [frameworked]
|
3
12
|
|
@@ -50,7 +50,17 @@ module Thin
|
|
50
50
|
|
51
51
|
# For some reason Swiftiply request the current host
|
52
52
|
def host_ip
|
53
|
-
|
53
|
+
begin
|
54
|
+
if defined?(Addrinfo)
|
55
|
+
# ruby 2.0+
|
56
|
+
# TODO: ipv6 support here?
|
57
|
+
Addrinfo.getaddrinfo(@backend.host, @backend.port, :PF_INET, :STREAM).first.ip_address.split('.').map(&:to_i)
|
58
|
+
else
|
59
|
+
Socket.gethostbyname(@backend.host)[3].unpack('CCCC')
|
60
|
+
end
|
61
|
+
rescue
|
62
|
+
[0, 0, 0, 0]
|
63
|
+
end
|
54
64
|
end
|
55
65
|
end
|
56
66
|
end
|
data/lib/thin/daemonizing.rb
CHANGED
@@ -78,7 +78,7 @@ module Thin
|
|
78
78
|
|
79
79
|
if uid != target_uid || gid != target_gid
|
80
80
|
# Change PID file ownership
|
81
|
-
File.chown(target_uid, target_gid, @pid_file) if File.
|
81
|
+
File.chown(target_uid, target_gid, @pid_file) if File.exist?(@pid_file)
|
82
82
|
|
83
83
|
# Change process ownership
|
84
84
|
Process.initgroups(user, target_gid)
|
@@ -174,7 +174,7 @@ module Thin
|
|
174
174
|
|
175
175
|
protected
|
176
176
|
def remove_pid_file
|
177
|
-
File.delete(@pid_file) if @pid_file && File.
|
177
|
+
File.delete(@pid_file) if @pid_file && File.exist?(@pid_file)
|
178
178
|
end
|
179
179
|
|
180
180
|
def write_pid_file
|
data/lib/thin/headers.rb
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
module Thin
|
2
|
+
# Raised when an header is not valid
|
3
|
+
# and the server can not process it.
|
4
|
+
class InvalidHeader < StandardError; end
|
5
|
+
|
2
6
|
# Store HTTP header name-value pairs direcly to a string
|
3
7
|
# and allow duplicated entries on some names.
|
4
8
|
class Headers
|
5
9
|
HEADER_FORMAT = "%s: %s\r\n".freeze
|
6
10
|
ALLOWED_DUPLICATES = %w(set-cookie set-cookie2 warning www-authenticate).freeze
|
11
|
+
CR_OR_LF = /[\r\n]/.freeze
|
7
12
|
|
8
13
|
def initialize
|
9
14
|
@sent = {}
|
@@ -22,6 +27,8 @@ module Thin
|
|
22
27
|
value.httpdate
|
23
28
|
when NilClass
|
24
29
|
return
|
30
|
+
when CR_OR_LF
|
31
|
+
raise InvalidHeader, "Header contains CR or LF"
|
25
32
|
else
|
26
33
|
value.to_s
|
27
34
|
end
|
data/lib/thin/version.rb
CHANGED
@@ -6,11 +6,11 @@ module Thin
|
|
6
6
|
module VERSION #:nodoc:
|
7
7
|
MAJOR = 1
|
8
8
|
MINOR = 8
|
9
|
-
TINY =
|
9
|
+
TINY = 2
|
10
10
|
|
11
11
|
STRING = [MAJOR, MINOR, TINY].join('.')
|
12
12
|
|
13
|
-
CODENAME = "
|
13
|
+
CODENAME = "Ruby Razor".freeze
|
14
14
|
|
15
15
|
RACK = [1, 0].freeze # Rack protocol version
|
16
16
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marc-Andre Cournoyer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
149
|
- !ruby/object:Gem::Version
|
150
150
|
version: '0'
|
151
151
|
requirements: []
|
152
|
-
rubygems_version: 3.
|
152
|
+
rubygems_version: 3.4.7
|
153
153
|
signing_key:
|
154
154
|
specification_version: 4
|
155
155
|
summary: A thin and fast web server
|