HttpRequest: put cookies in a single header entry

* Http spec says headers can be split when they are comma separated
 * However, cookies are semicolon separated, so it is not acceptable to
split them.
 * We will want to implement some way to limit the cookie header entry
size, as servers have a limit on what they can accept (usually around 4K
characters). The RFC also says we don't need to remember more than 20
cookies per domain.
This commit is contained in:
Adrien Destugues
2013-10-11 21:44:08 +02:00
parent 8b08992799
commit f9d987ae68
+8 -2
View File
@@ -871,11 +871,17 @@ BHttpRequest::_AddHeaders()
// Context cookies
if (fOptSetCookies && (fContext != NULL)) {
BNetworkCookie* cookie;
BString cookieString;
for (BNetworkCookieJar::UrlIterator it
= fContext->GetCookieJar().GetUrlIterator(fUrl);
(cookie = it.Next()) != NULL;)
fOutputHeaders.AddHeader("Cookie", cookie->RawCookie(false));
(cookie = it.Next()) != NULL;) {
cookieString << cookie->RawCookie(false);
cookieString << "; ";
}
if (cookieString.length() > 0)
fOutputHeaders.AddHeader("Cookie", cookieString);
}
// Write output headers to output stream