}
RGWMongoose::RGWMongoose(mg_connection *_conn, int _port) : conn(_conn), port(_port), header_done(false), sent_header(false), has_content_length(false),
- explicit_keepalive(false)
+ explicit_keepalive(false), explicit_conn_close(false)
{
}
if (strcasecmp(header->name, "connection") == 0) {
explicit_keepalive = (strcasecmp(header->value, "keep-alive") == 0);
+ explicit_conn_close = (strcasecmp(header->value, "close") == 0);
}
int len = strlen(header->name) + 5; /* HTTP_ prepended */
if (explicit_keepalive)
header_data.append("Connection: Keep-Alive\r\n");
+ else if (explicit_conn_close)
+ header_data.append("Connection: close\r\n");
header_data.append("\r\n");