From c43795f9ddba6901b7c4c4a70d840cfb43d20dfa Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Sat, 8 Feb 2020 00:25:19 +1300 Subject: [PATCH] Document AUTHORITY regexp. --- lib/rack/request.rb | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/rack/request.rb b/lib/rack/request.rb index eac9daa6e..81d184391 100644 --- a/lib/rack/request.rb +++ b/lib/rack/request.rb @@ -403,6 +403,7 @@ def content_charset def form_data? type = media_type meth = get_header(RACK_METHODOVERRIDE_ORIGINAL_METHOD) || get_header(REQUEST_METHOD) + (meth == POST && type.nil?) || FORM_DATA_MEDIA_TYPES.include?(type) end @@ -590,7 +591,22 @@ def split_header(value) value ? value.strip.split(/[,\s]+/) : [] end - AUTHORITY = /(?(\[(?.*)\])|(?[\d\.]+)|(?[a-zA-Z0-9\.\-]+))(:(?\d+))?/ + AUTHORITY = / + # The host: + (? + # An IPv6 address: + (\[(?.*)\]) + | + # An IPv4 address: + (?[\d\.]+) + | + # A hostname: + (?[a-zA-Z0-9\.\-]+) + ) + # The optional port: + (:(?\d+))? + /x + private_constant :AUTHORITY def split_authority(authority)