Home » U++ Library support » Skylark » Http::Finalize adds Content-Type even when it is empty
Http::Finalize adds Content-Type even when it is empty [message #59120] |
Sun, 06 November 2022 11:49  |
Zbych
Messages: 327 Registered: July 2009
|
Senior Member |
|
|
Hi,
Http::Finalize in Skylark shouldn't add Content-Type header when content_type is empty.
void Http::Finalize()
{
if(rsocket) {
SKYLARKLOG("=== Response: " << code << ' ' << code_text);
String r;
// weird apache2 mod_scgi behaviour
if(hdr.scgi)
r << "Status: ";
else
r << "HTTP/1.1 ";
if(redirect.GetCount()) {
// for SCGI (at least on apache 2 mod_scgi), we need protocol inside url
if(hdr.scgi && redirect.Find(":") < 0)
redirect = "http:" + redirect;
SKYLARKLOG("Redirect to: " << redirect);
r << code << " Found\r\n";
r << "Location: " << redirect << "\r\n";
for(int i = 0; i < cookies.GetCount(); i++)
r << cookies[i];
}
else {
r <<
code << ' ' << code_text << "\r\n"
"Date: " << WwwFormat(GetUtcTime()) << "\r\n"
"Content-Length: " << response.GetCount() << "\r\n"
<< (content_type.GetLength() ? ("Content-Type: " << content_type << "\r\n") : ""); //<------------ FIX
for(int i = 0; i < headers.GetCount(); i++)
r << headers.GetKey(i) << ": " << headers[i] << "\r\n";
for(int i = 0; i < cookies.GetCount(); i++)
r << cookies[i];
}
r << "\r\n";
rsocket->PutAll(r);
rsocket->PutAll(response);
rsocket = NULL;
}
}
|
|
|
Goto Forum:
Current Time: Fri Feb 14 09:57:50 CET 2025
Total time taken to generate the page: 0.04504 seconds
|