thin 1.8.0 → 1.8.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 285d7efc73ff2e6e29a8789706c605cc2a2b5a1d25313a53d72954dd5a8adbe7
4
- data.tar.gz: 24642b42692477ba60cb63cb0ffa49dcf63cc0634708a349d8fac94d08989b74
3
+ metadata.gz: 32913c8b29b57b8f15fcd7cffb49db757989a225794e089ced01e53354c3cd90
4
+ data.tar.gz: f232efe452f20785ea8e71422a53147205ffd65ddbba90b8ba12e5b340c3b466
5
5
  SHA512:
6
- metadata.gz: ab7de3338f8d8694ed44a04cf785e78a0ce85de874d7bde4d96c6801b1e85190a3cbd33d8fe16a32aedc09eab9f1caad4a37ce51dc5997c32b5550da6d2fcffc
7
- data.tar.gz: 19c45bc3a6f403daffe6a6c66b89bca01c597edb5b8c6ada110834c52fac0f639746f9b51ce5a3ca42c8f2fa013c929929b64b3737819ce83e5dff257e8a328a
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
- Socket.gethostbyname(@backend.host)[3].unpack('CCCC') rescue [0, 0, 0, 0]
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
@@ -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.exists?(@pid_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.exists?(@pid_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 = 0
9
+ TINY = 2
10
10
 
11
11
  STRING = [MAJOR, MINOR, TINY].join('.')
12
12
 
13
- CODENAME = "Possessed Pickle".freeze
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.0
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: 2020-11-13 00:00:00.000000000 Z
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.1.2
152
+ rubygems_version: 3.4.7
153
153
  signing_key:
154
154
  specification_version: 4
155
155
  summary: A thin and fast web server