Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rubygem-rack-proxy for 
openSUSE:Factory checked in at 2022-10-12 18:25:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-rack-proxy (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-rack-proxy.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-rack-proxy"

Wed Oct 12 18:25:19 2022 rev:4 rq:1010076 version:0.7.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-rack-proxy/rubygem-rack-proxy.changes    
2022-02-02 22:45:02.554056056 +0100
+++ 
/work/SRC/openSUSE:Factory/.rubygem-rack-proxy.new.2275/rubygem-rack-proxy.changes
  2022-10-12 18:27:08.226012872 +0200
@@ -1,0 +2,6 @@
+Mon Oct 10 13:15:58 UTC 2022 - Stephan Kulow <co...@suse.com>
+
+updated to version 0.7.4
+  no changelog found
+
+-------------------------------------------------------------------

Old:
----
  rack-proxy-0.7.2.gem

New:
----
  rack-proxy-0.7.4.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-rack-proxy.spec ++++++
--- /var/tmp/diff_new_pack.9v9oqM/_old  2022-10-12 18:27:08.598013690 +0200
+++ /var/tmp/diff_new_pack.9v9oqM/_new  2022-10-12 18:27:08.606013708 +0200
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-rack-proxy
-Version:        0.7.2
+Version:        0.7.4
 Release:        0
 %define mod_name rack-proxy
 %define mod_full_name %{mod_name}-%{version}

++++++ rack-proxy-0.7.2.gem -> rack-proxy-0.7.4.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.github/FUNDING.yml new/.github/FUNDING.yml
--- old/.github/FUNDING.yml     1970-01-01 01:00:00.000000000 +0100
+++ new/.github/FUNDING.yml     2022-09-13 17:38:27.000000000 +0200
@@ -0,0 +1,3 @@
+# These are supported funding model platforms
+
+github: [ncr]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Gemfile.lock new/Gemfile.lock
--- old/Gemfile.lock    2022-01-05 21:36:02.000000000 +0100
+++ new/Gemfile.lock    2022-09-13 17:38:27.000000000 +0200
@@ -1,18 +1,18 @@
 PATH
   remote: .
   specs:
-    rack-proxy (0.7.2)
+    rack-proxy (0.7.4)
       rack
 
 GEM
   remote: https://rubygems.org/
   specs:
-    power_assert (0.2.6)
-    rack (2.2.3)
-    rack-test (0.5.6)
-      rack (>= 1.0)
+    power_assert (2.0.1)
+    rack (2.2.4)
+    rack-test (1.1.0)
+      rack (>= 1.0, < 3)
     rake (13.0.6)
-    test-unit (3.1.5)
+    test-unit (3.5.3)
       power_assert
 
 PLATFORMS
@@ -25,4 +25,4 @@
   test-unit
 
 BUNDLED WITH
-   1.17.2
+   2.3.21
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md       2022-01-05 21:36:02.000000000 +0100
+++ new/README.md       2022-09-13 17:38:27.000000000 +0200
@@ -6,7 +6,7 @@
 Add the following to your `Gemfile`:
 
 ```
-gem 'rack-proxy', '~> 0.7.2'
+gem 'rack-proxy', '~> 0.7.4'
 ```
 
 Or install:
@@ -136,7 +136,7 @@
 # 1. rails new test_app
 # 2. cd test_app
 # 3. install Rack-Proxy in `Gemfile`
-#    a. `gem 'rack-proxy', '~> 0.7.2'`
+#    a. `gem 'rack-proxy', '~> 0.7.4'`
 # 4. install gem: `bundle install`
 # 5. create `config/initializers/proxy.rb` adding this line `require 
'rack_proxy_examples/example_service_proxy'`
 # 6. run: `SERVICE_URL=http://guides.rubyonrails.org rails server`
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rack/http_streaming_response.rb 
new/lib/rack/http_streaming_response.rb
--- old/lib/rack/http_streaming_response.rb     2022-01-05 21:36:02.000000000 
+0100
+++ new/lib/rack/http_streaming_response.rb     2022-09-13 17:38:27.000000000 
+0200
@@ -1,13 +1,16 @@
 require "net_http_hacked"
+require "stringio"
 
 module Rack
-
   # Wraps the hacked net/http in a Rack way.
   class HttpStreamingResponse
-    attr_accessor :use_ssl
-    attr_accessor :verify_mode
-    attr_accessor :read_timeout
-    attr_accessor :ssl_version
+    STATUSES_WITH_NO_ENTITY_BODY = {
+      204 => true,
+      205 => true,
+      304 => true
+    }.freeze
+
+    attr_accessor :use_ssl, :verify_mode, :read_timeout, :ssl_version
 
     def initialize(request, host, port = nil)
       @request, @host, @port = request, host, port
@@ -18,60 +21,62 @@
     end
 
     def code
-      response.code.to_i
+      response.code.to_i.tap do |response_code|
+        STATUSES_WITH_NO_ENTITY_BODY[response_code] && close_connection
+      end
     end
     # #status is deprecated
     alias_method :status, :code
 
     def headers
-      h = Utils::HeaderHash.new
-
-      response.to_hash.each do |k, v|
-        h[k] = v
+      Utils::HeaderHash.new.tap do |h|
+        response.to_hash.each { |k, v| h[k] = v }
       end
-
-      h
     end
 
     # Can be called only once!
     def each(&block)
+      return if connection_closed
+
       response.read_body(&block)
     ensure
-      session.end_request_hacked
-      session.finish
+      close_connection
     end
 
     def to_s
-      @body ||= begin
-        lines = []
-
-        each do |line|
-          lines << line
-        end
-
-        lines.join
-      end
+      @to_s ||= StringIO.new.tap { |io| each { |line| io << line } }.string
     end
 
     protected
 
     # Net::HTTPResponse
     def response
-      @response ||= session.begin_request_hacked(@request)
+      @response ||= session.begin_request_hacked(request)
     end
 
     # Net::HTTP
     def session
-      @session ||= begin
-        http = Net::HTTP.new @host, @port
-        http.use_ssl = self.use_ssl
-        http.verify_mode = self.verify_mode
-        http.read_timeout = self.read_timeout
-        http.ssl_version = self.ssl_version if self.use_ssl
+      @session ||= Net::HTTP.new(host, port).tap do |http|
+        http.use_ssl = use_ssl
+        http.verify_mode = verify_mode
+        http.read_timeout = read_timeout
+        http.ssl_version = ssl_version if use_ssl
         http.start
       end
     end
 
-  end
+    private
+
+    attr_reader :request, :host, :port
+
+    attr_accessor :connection_closed
+
+    def close_connection
+      return if connection_closed
 
+      session.end_request_hacked
+      session.finish
+      self.connection_closed = true
+    end
+  end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rack/proxy.rb new/lib/rack/proxy.rb
--- old/lib/rack/proxy.rb       2022-01-05 21:36:02.000000000 +0100
+++ new/lib/rack/proxy.rb       2022-09-13 17:38:27.000000000 +0200
@@ -5,7 +5,18 @@
 
   # Subclass and bring your own #rewrite_request and #rewrite_response
   class Proxy
-    VERSION = "0.7.2"
+    VERSION = "0.7.4".freeze
+
+    HOP_BY_HOP_HEADERS = {
+      'connection' => true,
+      'keep-alive' => true,
+      'proxy-authenticate' => true,
+      'proxy-authorization' => true,
+      'te' => true,
+      'trailer' => true,
+      'transfer-encoding' => true,
+      'upgrade' => true
+    }.freeze
 
     class << self
       def extract_http_request_headers(env)
@@ -19,9 +30,9 @@
           hash
         end
 
-        x_forwarded_for = (headers["X-Forwarded-For"].to_s.split(/, +/) << 
env["REMOTE_ADDR"]).join(", ")
+        x_forwarded_for = (headers['X-Forwarded-For'].to_s.split(/, +/) << 
env['REMOTE_ADDR']).join(', ')
 
-        headers.merge!("X-Forwarded-For" =>  x_forwarded_for)
+        headers.merge!('X-Forwarded-For' => x_forwarded_for)
       end
 
       def normalize_headers(headers)
@@ -130,16 +141,16 @@
         end
       end
 
+      code    = target_response.code
       headers = 
self.class.normalize_headers(target_response.respond_to?(:headers) ? 
target_response.headers : target_response.to_hash)
       body    = target_response.body || [""]
       body    = [body] unless body.respond_to?(:each)
 
       # According to 
https://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-14#section-7.1.3.1Acc
       # should remove hop-by-hop header fields
-      headers.reject! { |k| ['connection', 'keep-alive', 'proxy-authenticate', 
'proxy-authorization', 'te', 'trailer', 'transfer-encoding', 
'upgrade'].include? k.downcase }
-      [target_response.code, headers, body]
-    end
+      headers.reject! { |k| HOP_BY_HOP_HEADERS[k.downcase] }
 
+      [code, headers, body]
+    end
   end
-
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rack_proxy_examples/example_service_proxy.rb 
new/lib/rack_proxy_examples/example_service_proxy.rb
--- old/lib/rack_proxy_examples/example_service_proxy.rb        2022-01-05 
21:36:02.000000000 +0100
+++ new/lib/rack_proxy_examples/example_service_proxy.rb        2022-09-13 
17:38:27.000000000 +0200
@@ -5,7 +5,7 @@
 # 1. rails new test_app
 # 2. cd test_app
 # 3. install Rack-Proxy in `Gemfile`
-#    a. `gem 'rack-proxy', '~> 0.7.2'`
+#    a. `gem 'rack-proxy', '~> 0.7.4'`
 # 4. install gem: `bundle install`
 # 5. create `config/initializers/proxy.rb` adding this line `require 
'rack_proxy_examples/example_service_proxy'`
 # 6. run: `SERVICE_URL=http://guides.rubyonrails.org rails server`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2022-01-05 21:36:02.000000000 +0100
+++ new/metadata        2022-09-13 17:38:27.000000000 +0200
@@ -1,14 +1,14 @@
 --- !ruby/object:Gem::Specification
 name: rack-proxy
 version: !ruby/object:Gem::Version
-  version: 0.7.2
+  version: 0.7.4
 platform: ruby
 authors:
 - Jacek Becela
 autorequire:
 bindir: bin
 cert_chain: []
-date: 2022-01-05 00:00:00.000000000 Z
+date: 2022-09-13 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: rack
@@ -60,6 +60,7 @@
 extensions: []
 extra_rdoc_files: []
 files:
+- ".github/FUNDING.yml"
 - ".gitignore"
 - ".travis.yml"
 - Gemfile

Reply via email to