refactor(uri): Add default path for absolute-form
Add default path ("/") for absolute-form, even if not included.
This change assumes self.scheme().is_some() indicates that the Uri
is in absolute-form.
Issue:
https://github.com/hyperium/hyper/issues/1022
			
			
This commit is contained in:
		| @@ -88,6 +88,9 @@ impl Uri { | |||||||
|         let end = self.source.len() - if query_len > 0 { query_len + 1 } else { 0 } - |         let end = self.source.len() - if query_len > 0 { query_len + 1 } else { 0 } - | ||||||
|             if fragment_len > 0 { fragment_len + 1 } else { 0 }; |             if fragment_len > 0 { fragment_len + 1 } else { 0 }; | ||||||
|         if index >= end { |         if index >= end { | ||||||
|  |             if self.scheme().is_some() { | ||||||
|  |                 return "/" // absolute-form MUST have path | ||||||
|  |             } | ||||||
|             "" |             "" | ||||||
|         } else { |         } else { | ||||||
|             &self.source[index..end] |             &self.source[index..end] | ||||||
| @@ -317,7 +320,7 @@ test_parse! { | |||||||
|     "http://127.0.0.1:80", |     "http://127.0.0.1:80", | ||||||
|  |  | ||||||
|     scheme = Some("http"), |     scheme = Some("http"), | ||||||
|     authority = Some("127.0.0.1"), |     authority = Some("127.0.0.1:80"), | ||||||
|     path = "/", |     path = "/", | ||||||
|     query = None, |     query = None, | ||||||
|     fragment = None, |     fragment = None, | ||||||
| @@ -328,7 +331,7 @@ test_parse! { | |||||||
|     "https://127.0.0.1:443", |     "https://127.0.0.1:443", | ||||||
|  |  | ||||||
|     scheme = Some("https"), |     scheme = Some("https"), | ||||||
|     authority = Some("127.0.0.1"), |     authority = Some("127.0.0.1:443"), | ||||||
|     path = "/", |     path = "/", | ||||||
|     query = None, |     query = None, | ||||||
|     fragment = None, |     fragment = None, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user