content-length header in response

main
phani 5 years ago
parent 27b317116d
commit 618f269a9a

@ -150,10 +150,34 @@ sandbox_client_response_set(void)
int bodylen = curr->rr_data_len;
if (bodylen > 0) {
http_response_body_set(curr->req_resp_data, bodylen);
char len[16] = { 0 };
sprintf(len, "%d", bodylen);
//content-length = body length
char *key = curr->req_resp_data + curr->rr_data_len;
strcpy(key, "content-type: text/plain\r\n\r\n");
http_response_header_set(key, strlen( "content-type: text/plain\r\n\r\n"));
curr->rr_data_len += strlen("content-type: text/plain\r\n\r\n");
int lenlen = strlen("content-length: "), dlen = strlen(len);
strcpy(key, "content-length: ");
strncat(key + lenlen, len, dlen);
strncat(key + lenlen + dlen, "\r\n", 2);
http_response_header_set(key, lenlen + dlen + 2);
curr->rr_data_len += lenlen + dlen + 2;
//content-type as set in the headers.
key = curr->req_resp_data + curr->rr_data_len;
strcpy(key, "content-type: ");
lenlen = strlen("content-type: ");
dlen = strlen(curr->mod->rspctype);
if (dlen == 0) {
int l = strlen("text/plain\r\n\r\n");
strncat(key + lenlen, "text/plain\r\n\r\n", l);
http_response_header_set(key, lenlen + l);
curr->rr_data_len += lenlen + l;
} else {
strncat(key + lenlen, curr->mod->rspctype, dlen);
strncat(key + lenlen + dlen, "\r\n\r\n", 4);
http_response_header_set(key, lenlen + dlen + 4);
curr->rr_data_len += lenlen + dlen + 4;
}
//TODO - other headers requested in module!
}
char *st = curr->req_resp_data + curr->rr_data_len;

Loading…
Cancel
Save