in net/http/cookie_jar.cpp [124:150]
int set_cookies_to_headers(Request* request) {
uint64_t now = time(0);
auto& h = request->headers;
for (auto it = m_cookies.begin(); it != m_cookies.end(); ) {
if (now > it->second.expire) {
it = m_cookies.erase(it);
continue;
}
DEFER(++it);
if (!request->secure() && starts_with(it->first, "__Secure-")) continue;
if (!starts_with(request->abs_path(), it->second.get_path())) continue;
auto d = it->second.get_domain();
if (!d.empty() && d != request->host()) continue;
size_t size = it->first.size() + 1 + it->second.value.size();
if (it == m_cookies.begin()) {
if (h.space_remain() < size + 10+6) return -1;
h.insert("Cookie", "");
} else {
if (h.space_remain() < size + 2+6) return -1;
h.value_append("; ");
}
h.value_append(it->first);
h.value_append("=");
h.value_append(it->second.get_value());
}
return 0;
}