summary refs log tree commit
path: root/lib/rack/request.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rack/request.rb')
-rw-r--r--lib/rack/request.rb46
1 files changed, 10 insertions, 36 deletions
diff --git a/lib/rack/request.rb b/lib/rack/request.rb
index 99d9674b..45214014 100644
--- a/lib/rack/request.rb
+++ b/lib/rack/request.rb
@@ -287,9 +287,7 @@ module Rack
       end
 
       def server_port
-        if port = get_header(SERVER_PORT)
-          Integer(port)
-        end
+        get_header(SERVER_PORT)
       end
 
       def cookies
@@ -347,23 +345,9 @@ module Rack
       def port
         if authority = self.authority
           _, _, port = split_authority(authority)
-
-          if port
-            return port
-          end
         end
 
-        if forwarded_port = self.forwarded_port
-          return forwarded_port.last
-        end
-
-        if scheme = self.scheme
-          if port = DEFAULT_PORTS[scheme]
-            return port
-          end
-        end
-
-        self.server_port
+        port || forwarded_port&.last || DEFAULT_PORTS[scheme] || server_port
       end
 
       def forwarded_for
@@ -435,14 +419,12 @@ module Rack
           return external_addresses.last
         end
 
-        if forwarded_for = self.forwarded_for
-          unless forwarded_for.empty?
-            # The forwarded for addresses are ordered: client, proxy1, proxy2.
-            # So we reject all the trusted addresses (proxy*) and return the
-            # last client. Or if we trust everyone, we just return the first
-            # address.
-            return reject_trusted_ip_addresses(forwarded_for).last || forwarded_for.first
-          end
+        if (forwarded_for = self.forwarded_for) && !forwarded_for.empty?
+          # The forwarded for addresses are ordered: client, proxy1, proxy2.
+          # So we reject all the trusted addresses (proxy*) and return the
+          # last client. Or if we trust everyone, we just return the first
+          # address.
+          return reject_trusted_ip_addresses(forwarded_for).last || forwarded_for.first
         end
 
         # If all the addresses are trusted, and we aren't forwarded, just return
@@ -756,16 +738,6 @@ module Rack
         header if ALLOWED_SCHEMES.include?(header)
       end
 
-      def extract_proto_header(header)
-        if header
-          if (comma_index = header.index(','))
-            header[0, comma_index]
-          else
-            header
-          end
-        end
-      end
-
       def forwarded_priority
         Request.forwarded_priority
       end
@@ -780,4 +752,6 @@ module Rack
   end
 end
 
+# :nocov:
 require_relative 'multipart' unless defined?(Rack::Multipart)
+# :nocov: