diff --git a/proxmox-rest-server/src/lib.rs b/proxmox-rest-server/src/lib.rs index 474827a3..3f7afae6 100644 --- a/proxmox-rest-server/src/lib.rs +++ b/proxmox-rest-server/src/lib.rs @@ -201,6 +201,16 @@ pub fn extract_cookie(cookie: &str, cookie_name: &str) -> Option { None } +/// Extract a specific cookie from a HeaderMap's "COOKIE" entry. +/// We assume cookie_name is already url encoded. +pub fn cookie_from_header(headers: &http::HeaderMap, cookie_name: &str) -> Option { + if let Some(Ok(cookie)) = headers.get("COOKIE").map(|v| v.to_str()) { + extract_cookie(&cookie, cookie_name) + } else { + None + } +} + /// normalize uri path /// /// Do not allow ".", "..", or hidden files ".XXXX"