int add_line (char **buffer, char *str)
{
- int len = strlen (*buffer) + strlen (str) + 1;
- *buffer = realloc (*buffer, len);
+ VERBOSE (DEBUG, PRINT ("add line: %s", str));
+ int len = ((*buffer) ? strlen (*buffer) : 0) + strlen (str) + 1;
+ VERBOSE (DEBUG, PRINT ("len: %d\n", len));
+ if (*buffer) {
+ *buffer = (char *)realloc (*buffer, len);
+ } else {
+ *buffer = (char *)calloc (len, 1);
+ }
strcat (*buffer, str);
return len;
}
int response_html (char **buffer, char *location, char *response)
{
- add_status_line (buffer, c200);
- add_general_header (buffer);
- add_response_header (buffer, location);
-
+ int len = 0;
+ VERBOSE (DEBUG, PRINT ("add_status_line %d\n", len));
+ len = add_status_line (buffer, c200);
+ VERBOSE (DEBUG, PRINT ("add_general_header %d\n", len));
+ len = add_general_header (buffer);
+ VERBOSE (DEBUG, PRINT ("add_response_header %d\n", len));
+ len = add_response_header (buffer, location);
+
+ VERBOSE (DEBUG, PRINT ("add_entity %d\n", len));
return add_entity (buffer, response, strlen (response), "text/html", "iso-8859-1");
}