Hello community, here is the log from the commit of package rubygem-rack for openSUSE:Factory checked in at 2019-04-08 10:39:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-rack (Old) and /work/SRC/openSUSE:Factory/.rubygem-rack.new.3908 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-rack" Mon Apr 8 10:39:18 2019 rev:15 rq:692038 version:2.0.7 Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-rack/rubygem-rack.changes 2018-11-13 17:43:34.220127192 +0100 +++ /work/SRC/openSUSE:Factory/.rubygem-rack.new.3908/rubygem-rack.changes 2019-04-08 10:40:32.523298437 +0200 @@ -1,0 +2,7 @@ +Sat Apr 6 17:52:23 UTC 2019 - manuel <[email protected]> + +- updated to version 2.0.7 + + no changelog found + +------------------------------------------------------------------- Old: ---- rack-2.0.6.gem New: ---- rack-2.0.7.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-rack.spec ++++++ --- /var/tmp/diff_new_pack.bKJ3pU/_old 2019-04-08 10:40:33.331298633 +0200 +++ /var/tmp/diff_new_pack.bKJ3pU/_new 2019-04-08 10:40:33.343298636 +0200 @@ -1,7 +1,7 @@ # # spec file for package rubygem-rack # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ # Name: rubygem-rack -Version: 2.0.6 +Version: 2.0.7 Release: 0 %define mod_name rack %define mod_full_name %{mod_name}-%{version} ++++++ rack-2.0.6.gem -> rack-2.0.7.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SPEC new/SPEC --- old/SPEC 2018-11-05 20:29:36.000000000 +0100 +++ new/SPEC 2019-04-02 18:54:06.000000000 +0200 @@ -60,8 +60,8 @@ the presence or absence of the appropriate HTTP header in the request. See - <a href="https://tools.ietf.org/html/rfc3875#section-4.1.18"> - RFC3875 section 4.1.18</a> for + {https://tools.ietf.org/html/rfc3875#section-4.1.18 + RFC3875 section 4.1.18} for specific behavior. In addition to this, the Rack environment must include these Rack-specific variables: @@ -98,13 +98,12 @@ Additional environment specifications have approved to standardized middleware APIs. None of these are required to be implemented by the server. -<tt>rack.session</tt>:: A hash like interface for storing - request session data. +<tt>rack.session</tt>:: A hash like interface for storing request session data. The store must implement: - store(key, value) (aliased as []=); - fetch(key, default = nil) (aliased as []); - delete(key); - clear; + store(key, value) (aliased as []=); + fetch(key, default = nil) (aliased as []); + delete(key); + clear; <tt>rack.logger</tt>:: A common object interface for logging messages. The object must implement: info(message, &block) 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/multipart/parser.rb new/lib/rack/multipart/parser.rb --- old/lib/rack/multipart/parser.rb 2018-11-05 20:29:36.000000000 +0100 +++ new/lib/rack/multipart/parser.rb 2019-04-02 18:54:06.000000000 +0200 @@ -39,8 +39,6 @@ str end - def eof?; @content_length == @cursor; end - def rewind @io.rewind end @@ -65,11 +63,11 @@ io = BoundedIO.new(io, content_length) if content_length parser = new(boundary, tmpfile, bufsize, qp) - parser.on_read io.read(bufsize), io.eof? + parser.on_read io.read(bufsize) loop do break if parser.state == :DONE - parser.on_read io.read(bufsize), io.eof? + parser.on_read io.read(bufsize) end io.rewind @@ -181,8 +179,8 @@ @collector = Collector.new tempfile end - def on_read content, eof - handle_empty_content!(content, eof) + def on_read content + handle_empty_content!(content) @buf << content run_parser end @@ -358,10 +356,9 @@ end - def handle_empty_content!(content, eof) + def handle_empty_content!(content) if content.nil? || content.empty? - raise EOFError if eof - return true + raise EOFError end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rack/request.rb new/lib/rack/request.rb --- old/lib/rack/request.rb 2018-11-05 20:29:36.000000000 +0100 +++ new/lib/rack/request.rb 2019-04-02 18:54:06.000000000 +0200 @@ -261,7 +261,7 @@ forwarded_ips = split_ip_addresses(get_header('HTTP_X_FORWARDED_FOR')) - return reject_trusted_ip_addresses(forwarded_ips).last || get_header("REMOTE_ADDR") + return reject_trusted_ip_addresses(forwarded_ips).last || forwarded_ips.first || get_header("REMOTE_ADDR") end # The media type (type/subtype) portion of the CONTENT_TYPE header diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rack.rb new/lib/rack.rb --- old/lib/rack.rb 2018-11-05 20:29:36.000000000 +0100 +++ new/lib/rack.rb 2019-04-02 18:54:06.000000000 +0200 @@ -18,7 +18,7 @@ VERSION.join(".") end - RELEASE = "2.0.6" + RELEASE = "2.0.7" # Return the Rack release as a dotted string. def self.release diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2018-11-05 20:29:36.000000000 +0100 +++ new/metadata 2019-04-02 18:54:06.000000000 +0200 @@ -1,14 +1,14 @@ --- !ruby/object:Gem::Specification name: rack version: !ruby/object:Gem::Version - version: 2.0.6 + version: 2.0.7 platform: ruby authors: - Leah Neukirchen autorequire: bindir: bin cert_chain: [] -date: 2018-11-05 00:00:00.000000000 Z +date: 2019-04-02 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: minitest @@ -275,59 +275,59 @@ version: '0' requirements: [] rubyforge_project: -rubygems_version: 2.7.6 +rubygems_version: 2.6.13 signing_key: specification_version: 4 summary: a modular Ruby webserver interface test_files: -- test/spec_multipart.rb +- test/spec_auth_basic.rb +- test/spec_auth_digest.rb +- test/spec_body_proxy.rb +- test/spec_builder.rb +- test/spec_cascade.rb +- test/spec_cgi.rb +- test/spec_chunked.rb +- test/spec_common_logger.rb +- test/spec_conditional_get.rb +- test/spec_config.rb +- test/spec_content_length.rb +- test/spec_content_type.rb - test/spec_deflater.rb -- test/spec_static.rb -- test/spec_session_cookie.rb -- test/spec_session_pool.rb +- test/spec_directory.rb - test/spec_etag.rb -- test/spec_version.rb +- test/spec_events.rb +- test/spec_fastcgi.rb +- test/spec_file.rb - test/spec_handler.rb -- test/spec_thin.rb -- test/spec_session_abstract_id.rb -- test/spec_mime.rb -- test/spec_recursive.rb -- test/spec_null_logger.rb +- test/spec_head.rb +- test/spec_lint.rb +- test/spec_lobster.rb +- test/spec_lock.rb +- test/spec_logger.rb - test/spec_media_type.rb -- test/spec_cgi.rb - test/spec_method_override.rb -- test/spec_content_type.rb -- test/spec_session_abstract_session_hash.rb +- test/spec_mime.rb +- test/spec_mock.rb +- test/spec_multipart.rb +- test/spec_null_logger.rb +- test/spec_recursive.rb - test/spec_request.rb -- test/spec_chunked.rb -- test/spec_show_exceptions.rb +- test/spec_response.rb +- test/spec_rewindable_input.rb - test/spec_runtime.rb -- test/spec_fastcgi.rb -- test/spec_common_logger.rb -- test/spec_builder.rb -- test/spec_config.rb -- test/spec_utils.rb - test/spec_sendfile.rb -- test/spec_lobster.rb -- test/spec_lint.rb -- test/spec_conditional_get.rb -- test/spec_tempfile_reaper.rb -- test/spec_mock.rb - test/spec_server.rb -- test/spec_directory.rb -- test/spec_webrick.rb -- test/spec_response.rb -- test/spec_file.rb +- test/spec_session_abstract_id.rb +- test/spec_session_abstract_session_hash.rb +- test/spec_session_cookie.rb +- test/spec_session_memcache.rb +- test/spec_session_pool.rb +- test/spec_show_exceptions.rb - test/spec_show_status.rb -- test/spec_body_proxy.rb -- test/spec_logger.rb -- test/spec_auth_digest.rb +- test/spec_static.rb +- test/spec_tempfile_reaper.rb +- test/spec_thin.rb - test/spec_urlmap.rb -- test/spec_events.rb -- test/spec_cascade.rb -- test/spec_auth_basic.rb -- test/spec_head.rb -- test/spec_lock.rb -- test/spec_rewindable_input.rb -- test/spec_session_memcache.rb -- test/spec_content_length.rb +- test/spec_utils.rb +- test/spec_version.rb +- test/spec_webrick.rb diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/spec_request.rb new/test/spec_request.rb --- old/test/spec_request.rb 2018-11-05 20:29:36.000000000 +0100 +++ new/test/spec_request.rb 2019-04-02 18:54:06.000000000 +0200 @@ -1286,7 +1286,16 @@ res.body.must_equal '2.2.2.3' end - it "regard local addresses as proxies" do + it "preserves ip for trusted proxy chain" do + mock = Rack::MockRequest.new(Rack::Lint.new(ip_app)) + res = mock.get '/', + 'HTTP_X_FORWARDED_FOR' => '192.168.0.11, 192.168.0.7', + 'HTTP_CLIENT_IP' => '127.0.0.1' + res.body.must_equal '192.168.0.11' + + end + + it "regards local addresses as proxies" do req = make_request(Rack::MockRequest.env_for("/")) req.trusted_proxy?('127.0.0.1').must_equal 0 req.trusted_proxy?('10.0.0.1').must_equal 0
