diff --git a/src/html.rs b/src/html.rs index beb72e7c..91a488d8 100644 --- a/src/html.rs +++ b/src/html.rs @@ -1022,11 +1022,7 @@ pub fn walk(session: &mut Session, document_url: &Url, node: &Handle) { set_node_attr(node, attr_name, None); } else if use_attr_href_value.clone().starts_with('#') { // Relative symbol that resolves to its own URL; keep as-is. - set_node_attr( - node, - attr_name, - Some(use_attr_href_value), - ); + set_node_attr(node, attr_name, Some(use_attr_href_value)); } else { let image_asset_url: Url = resolve_url(document_url, &use_attr_href_value); diff --git a/src/session.rs b/src/session.rs index 266a5fc1..31c0d863 100644 --- a/src/session.rs +++ b/src/session.rs @@ -145,13 +145,18 @@ impl Session { // URL not in cache, we retrieve the file let mut headers = HeaderMap::new(); if self.cookies.is_some() && !self.cookies.as_ref().unwrap().is_empty() { + let mut cookie_values: Vec = Vec::new(); for cookie in self.cookies.as_ref().unwrap() { if !cookie.is_expired() && cookie.matches_url(url.as_str()) { - let cookie_header_value: String = cookie.name.clone() + "=" + &cookie.value; - headers - .insert(COOKIE, HeaderValue::from_str(&cookie_header_value).unwrap()); + cookie_values.push(cookie.name.clone() + "=" + &cookie.value); } } + if !cookie_values.is_empty() { + headers.insert( + COOKIE, + HeaderValue::from_str(&cookie_values.join("; ")).unwrap(), + ); + } } // Add referer header for page resource requests if ["https", "http"].contains(&parent_url.scheme()) && parent_url != url {