puma 4.3.4 → 4.3.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puma might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4bb94b863ff03585309e0cd9cf4af66cf208dd425390980129da5c6678d08f81
4
- data.tar.gz: 9f3f1b3e3b377de124d2b26d3ab5e617738abe71e5b472ed1f79dd5d0bf64722
3
+ metadata.gz: 5d1c52f105214f11470ee950ef3fb455ad0fa3321becd22469e60d7952089899
4
+ data.tar.gz: d58f76eeae1ead6dad9ae82c76da26299011f8280cbf565b8b4d7ff75d05f4b4
5
5
  SHA512:
6
- metadata.gz: ecb5bdd742e5a9ae61e7f113789fb6a59ac880886d61a268eb289a601f5a132240df92c69a817078916fbbfda0ce7b682910b6e20dfa35a3af8d0b5907444d3c
7
- data.tar.gz: efa6926459f9175fedd1d3da342bbc05ef95ace205c49a0f0957bf8c4d711e2a11f7884105628725a716f1f30f9fee78b3a5341d2bf3e5bf0207bf394a65e9b4
6
+ metadata.gz: 843d3ddefcf37f5e0aa36c16a1c43067ec7c86d4b5f5e053f3efdcb78080dbbdd730416cde780cb21fe379acb039e5fab2bf3a261831acba62931c9204bb2168
7
+ data.tar.gz: 3b82c0a72ac04d3e6b36e695f7bf990b3fb9c14cd606562930f45ff5405301cba132fc33e34386c8c7241dc79c2470fc1187e3a47601c351e0c3c7b395e0240b
@@ -14,12 +14,14 @@
14
14
 
15
15
  /*
16
16
  * capitalizes all lower-case ASCII characters,
17
- * converts dashes to underscores.
17
+ * converts dashes to underscores, and underscores to commas.
18
18
  */
19
19
  static void snake_upcase_char(char *c)
20
20
  {
21
21
  if (*c >= 'a' && *c <= 'z')
22
22
  *c &= ~0x20;
23
+ else if (*c == '_')
24
+ *c = ',';
23
25
  else if (*c == '-')
24
26
  *c = '_';
25
27
  }
@@ -12,12 +12,14 @@
12
12
 
13
13
  /*
14
14
  * capitalizes all lower-case ASCII characters,
15
- * converts dashes to underscores.
15
+ * converts dashes to underscores, and underscores to commas.
16
16
  */
17
17
  static void snake_upcase_char(char *c)
18
18
  {
19
19
  if (*c >= 'a' && *c <= 'z')
20
20
  *c &= ~0x20;
21
+ else if (*c == '_')
22
+ *c = ',';
21
23
  else if (*c == '-')
22
24
  *c = '_';
23
25
  }
@@ -100,7 +100,7 @@ module Puma
100
100
  # too taxing on performance.
101
101
  module Const
102
102
 
103
- PUMA_VERSION = VERSION = "4.3.4".freeze
103
+ PUMA_VERSION = VERSION = "4.3.5".freeze
104
104
  CODE_NAME = "Mysterious Traveller".freeze
105
105
  PUMA_SERVER_STRING = ['puma', PUMA_VERSION, CODE_NAME].join(' ').freeze
106
106
 
@@ -672,6 +672,37 @@ module Puma
672
672
  }
673
673
  end
674
674
 
675
+ # Fixup any headers with , in the name to have _ now. We emit
676
+ # headers with , in them during the parse phase to avoid ambiguity
677
+ # with the - to _ conversion for critical headers. But here for
678
+ # compatibility, we'll convert them back. This code is written to
679
+ # avoid allocation in the common case (ie there are no headers
680
+ # with , in their names), that's why it has the extra conditionals.
681
+
682
+ to_delete = nil
683
+ to_add = nil
684
+
685
+ env.each do |k,v|
686
+ if k.start_with?("HTTP_") and k.include?(",") and k != "HTTP_TRANSFER,ENCODING"
687
+ if to_delete
688
+ to_delete << k
689
+ else
690
+ to_delete = [k]
691
+ end
692
+
693
+ unless to_add
694
+ to_add = {}
695
+ end
696
+
697
+ to_add[k.gsub(",", "_")] = v
698
+ end
699
+ end
700
+
701
+ if to_delete
702
+ to_delete.each { |k| env.delete(k) }
703
+ env.merge! to_add
704
+ end
705
+
675
706
  # A rack extension. If the app writes #call'ables to this
676
707
  # array, we will invoke them when the request is done.
677
708
  #
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puma
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.4
4
+ version: 4.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Phoenix
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-18 00:00:00.000000000 Z
11
+ date: 2020-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nio4r