}
/* send http header */
- fprintf(ser->f,
+ if (fprintf(ser->f,
"HTTP/1.1 %d %s\r\n"
"%s"
"Date: %s\r\n"
static_content ? "" : "Cache-Control: no-cache, no-store\r\n",
http_header ? ast_str_buffer(http_header) : "",
content_length
- );
+ ) <= 0) {
+ ast_debug(1, "fprintf() failed: %s\n", strerror(errno));
+ close_connection = 1;
+ }
/* send content */
- if (method != AST_HTTP_HEAD || status_code >= 400) {
+ if (!close_connection && (method != AST_HTTP_HEAD || status_code >= 400)) {
if (out && ast_str_strlen(out)) {
/*
* NOTE: Because ser->f is a non-standard FILE *, fwrite() will probably not
* behave exactly as documented.
*/
if (fwrite(ast_str_buffer(out), ast_str_strlen(out), 1, ser->f) != 1) {
- ast_log(LOG_ERROR, "fwrite() failed: %s\n", strerror(errno));
+ ast_debug(1, "fwrite() failed: %s\n", strerror(errno));
close_connection = 1;
}
}
* behave exactly as documented.
*/
if (fwrite(buf, len, 1, ser->f) != 1) {
- ast_log(LOG_WARNING, "fwrite() failed: %s\n", strerror(errno));
+ ast_debug(1, "fwrite() failed: %s\n", strerror(errno));
close_connection = 1;
break;
}