mirror of
https://github.com/actix/actix-extras.git
synced 2025-02-02 10:59:03 +01:00
store cookies load state
This commit is contained in:
parent
2a319d733f
commit
51cd08ef57
@ -23,6 +23,7 @@ pub struct HttpRequest {
|
|||||||
headers: HeaderMap,
|
headers: HeaderMap,
|
||||||
params: Params,
|
params: Params,
|
||||||
cookies: Vec<Cookie<'static>>,
|
cookies: Vec<Cookie<'static>>,
|
||||||
|
cookies_loaded: bool,
|
||||||
extensions: Extensions,
|
extensions: Extensions,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,6 +41,7 @@ impl HttpRequest {
|
|||||||
headers: headers,
|
headers: headers,
|
||||||
params: Params::empty(),
|
params: Params::empty(),
|
||||||
cookies: Vec::new(),
|
cookies: Vec::new(),
|
||||||
|
cookies_loaded: false,
|
||||||
extensions: Extensions::new(),
|
extensions: Extensions::new(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -53,6 +55,7 @@ impl HttpRequest {
|
|||||||
headers: HeaderMap::new(),
|
headers: HeaderMap::new(),
|
||||||
params: Params::empty(),
|
params: Params::empty(),
|
||||||
cookies: Vec::new(),
|
cookies: Vec::new(),
|
||||||
|
cookies_loaded: false,
|
||||||
extensions: Extensions::new(),
|
extensions: Extensions::new(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -119,6 +122,8 @@ impl HttpRequest {
|
|||||||
/// Load cookies
|
/// Load cookies
|
||||||
pub fn load_cookies(&mut self) -> Result<&Vec<Cookie>, CookieParseError>
|
pub fn load_cookies(&mut self) -> Result<&Vec<Cookie>, CookieParseError>
|
||||||
{
|
{
|
||||||
|
if !self.cookies_loaded {
|
||||||
|
self.cookies_loaded = true;
|
||||||
if let Some(val) = self.headers.get(header::COOKIE) {
|
if let Some(val) = self.headers.get(header::COOKIE) {
|
||||||
let s = str::from_utf8(val.as_bytes())
|
let s = str::from_utf8(val.as_bytes())
|
||||||
.map_err(CookieParseError::from)?;
|
.map_err(CookieParseError::from)?;
|
||||||
@ -126,6 +131,7 @@ impl HttpRequest {
|
|||||||
self.cookies.push(Cookie::parse_encoded(cookie)?.into_owned());
|
self.cookies.push(Cookie::parse_encoded(cookie)?.into_owned());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
Ok(&self.cookies)
|
Ok(&self.cookies)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user