puma 4.3.3 → 4.3.5
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.
Potentially problematic release.
This version of puma might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/ext/puma_http11/http11_parser.c +3 -1
- data/ext/puma_http11/http11_parser.rl +3 -1
- data/lib/puma/client.rb +10 -2
- data/lib/puma/const.rb +1 -1
- data/lib/puma/server.rb +31 -0
- 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: 5d1c52f105214f11470ee950ef3fb455ad0fa3321becd22469e60d7952089899
         | 
| 4 | 
            +
              data.tar.gz: d58f76eeae1ead6dad9ae82c76da26299011f8280cbf565b8b4d7ff75d05f4b4
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 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 | 
             
            }
         | 
    
        data/lib/puma/client.rb
    CHANGED
    
    | @@ -285,8 +285,16 @@ module Puma | |
| 285 285 |  | 
| 286 286 | 
             
                  te = @env[TRANSFER_ENCODING2]
         | 
| 287 287 |  | 
| 288 | 
            -
                  if te | 
| 289 | 
            -
                     | 
| 288 | 
            +
                  if te
         | 
| 289 | 
            +
                    if te.include?(",")
         | 
| 290 | 
            +
                      te.split(",").each do |part|
         | 
| 291 | 
            +
                        if CHUNKED.casecmp(part.strip) == 0
         | 
| 292 | 
            +
                          return setup_chunked_body(body)
         | 
| 293 | 
            +
                        end
         | 
| 294 | 
            +
                      end
         | 
| 295 | 
            +
                    elsif CHUNKED.casecmp(te) == 0
         | 
| 296 | 
            +
                      return setup_chunked_body(body)
         | 
| 297 | 
            +
                    end
         | 
| 290 298 | 
             
                  end
         | 
| 291 299 |  | 
| 292 300 | 
             
                  @chunked_body = false
         | 
    
        data/lib/puma/const.rb
    CHANGED
    
    | @@ -100,7 +100,7 @@ module Puma | |
| 100 100 | 
             
              # too taxing on performance.
         | 
| 101 101 | 
             
              module Const
         | 
| 102 102 |  | 
| 103 | 
            -
                PUMA_VERSION = VERSION = "4.3. | 
| 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 |  | 
    
        data/lib/puma/server.rb
    CHANGED
    
    | @@ -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 | 
            +
              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- | 
| 11 | 
            +
            date: 2020-05-19 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: nio4r
         | 
| @@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 136 136 | 
             
                - !ruby/object:Gem::Version
         | 
| 137 137 | 
             
                  version: '0'
         | 
| 138 138 | 
             
            requirements: []
         | 
| 139 | 
            -
            rubygems_version: 3. | 
| 139 | 
            +
            rubygems_version: 3.0.3
         | 
| 140 140 | 
             
            signing_key: 
         | 
| 141 141 | 
             
            specification_version: 4
         | 
| 142 142 | 
             
            summary: Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for
         |