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