mirror of
https://github.com/servo/servo.git
synced 2025-07-03 21:43:41 +01:00
Make path_matches
match the spec (fixes cookies)
This commit is contained in:
parent
b4213e6d8e
commit
f8d906be10
1 changed files with 14 additions and 3 deletions
|
@ -113,10 +113,21 @@ impl Cookie {
|
||||||
|
|
||||||
// http://tools.ietf.org/html/rfc6265#section-5.1.4
|
// http://tools.ietf.org/html/rfc6265#section-5.1.4
|
||||||
pub fn path_match(request_path: &str, cookie_path: &str) -> bool {
|
pub fn path_match(request_path: &str, cookie_path: &str) -> bool {
|
||||||
|
// A request-path path-matches a given cookie-path if at least one of
|
||||||
|
// the following conditions holds:
|
||||||
|
|
||||||
|
// The cookie-path and the request-path are identical.
|
||||||
request_path == cookie_path ||
|
request_path == cookie_path ||
|
||||||
( request_path.starts_with(cookie_path) &&
|
|
||||||
( request_path.ends_with("/") || request_path[cookie_path.len()..].starts_with("/"))
|
(request_path.starts_with(cookie_path) && (
|
||||||
)
|
// The cookie-path is a prefix of the request-path, and the last
|
||||||
|
// character of the cookie-path is %x2F ("/").
|
||||||
|
cookie_path.ends_with("/") ||
|
||||||
|
// The cookie-path is a prefix of the request-path, and the first
|
||||||
|
// character of the request-path that is not included in the cookie-
|
||||||
|
// path is a %x2F ("/") character.
|
||||||
|
request_path[cookie_path.len()..].starts_with("/")
|
||||||
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
// http://tools.ietf.org/html/rfc6265#section-5.1.3
|
// http://tools.ietf.org/html/rfc6265#section-5.1.3
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue