mirror of
https://github.com/denoland/deno.git
synced 2024-12-23 15:49:44 -05:00
cleanup(ext/http): simplify cookie header handling (#11704)
cleanup(ext/http): simplify cookie header handling Use `Vec::join` instead of essentially reimplementing it. There should be no meaningful performance delta
This commit is contained in:
parent
fb135dc3e4
commit
c87b13e745
1 changed files with 3 additions and 14 deletions
|
@ -293,15 +293,13 @@ fn req_headers(
|
|||
// mangled by the `Headers` object in JS. What we do is take all cookie
|
||||
// headers and concat them into a single cookie header, seperated by
|
||||
// semicolons.
|
||||
let mut total_cookie_length = 0;
|
||||
let cookie_sep = "; ".as_bytes();
|
||||
let mut cookies = vec![];
|
||||
|
||||
let mut headers = Vec::with_capacity(req.headers().len());
|
||||
for (name, value) in req.headers().iter() {
|
||||
if name == hyper::header::COOKIE {
|
||||
let bytes = value.as_bytes();
|
||||
total_cookie_length += bytes.len();
|
||||
cookies.push(bytes);
|
||||
cookies.push(value.as_bytes());
|
||||
} else {
|
||||
let name: &[u8] = name.as_ref();
|
||||
let value = value.as_bytes();
|
||||
|
@ -310,18 +308,9 @@ fn req_headers(
|
|||
}
|
||||
|
||||
if !cookies.is_empty() {
|
||||
let cookie_count = cookies.len();
|
||||
total_cookie_length += (cookie_count * 2) - 2;
|
||||
let mut bytes = Vec::with_capacity(total_cookie_length);
|
||||
for (i, cookie) in cookies.into_iter().enumerate() {
|
||||
bytes.extend(cookie);
|
||||
if i != cookie_count - 1 {
|
||||
bytes.extend("; ".as_bytes());
|
||||
}
|
||||
}
|
||||
headers.push((
|
||||
ByteString("cookie".as_bytes().to_owned()),
|
||||
ByteString(bytes),
|
||||
ByteString(cookies.join(cookie_sep)),
|
||||
));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue