summaryrefslogtreecommitdiff
path: root/main/http.c
diff options
context:
space:
mode:
authorGeorge Joseph <gjoseph@digium.com>2017-07-05 14:31:43 -0600
committerGeorge Joseph <gjoseph@digium.com>2017-07-11 09:29:51 -0500
commit303f935a50835ce40c3589603d8c66fff292c64a (patch)
treed2c04e18b477f07deac93f6e6d6a223f9a4bb53c /main/http.c
parent16f0fa52c05e14c050db014bb7d555edb261fe1d (diff)
http.c: Reduce log spam
Messages like "fwrite() failed: Connection reset by peer" are no help whatsoever, especially since they can be caused simply by a client disconnecting. * Make those WARNINGs DEBUGs. * Check the return from ast_iostream_printf of headers. Change-Id: I17bd5f3621514152a7b2b263c801324c5e96568b
Diffstat (limited to 'main/http.c')
-rw-r--r--main/http.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/main/http.c b/main/http.c
index ea85a2823..7191eb524 100644
--- a/main/http.c
+++ b/main/http.c
@@ -508,7 +508,7 @@ void ast_http_send(struct ast_tcptls_session_instance *ser,
send_content = method != AST_HTTP_HEAD || status_code >= 400;
/* send http header */
- ast_iostream_printf(ser->stream,
+ if (ast_iostream_printf(ser->stream,
"HTTP/1.1 %d %s\r\n"
"%s"
"Date: %s\r\n"
@@ -526,13 +526,16 @@ void ast_http_send(struct ast_tcptls_session_instance *ser,
http_header ? ast_str_buffer(http_header) : "",
content_length,
send_content && out && ast_str_strlen(out) ? ast_str_buffer(out) : ""
- );
+ ) <= 0) {
+ ast_debug(1, "ast_iostream_printf() failed: %s\n", strerror(errno));
+ close_connection = 1;
+ }
/* send content */
- if (send_content && fd) {
+ if (!close_connection && send_content && fd) {
while ((len = read(fd, buf, sizeof(buf))) > 0) {
if (ast_iostream_write(ser->stream, buf, len) != len) {
- ast_log(LOG_WARNING, "fwrite() failed: %s\n", strerror(errno));
+ ast_debug(1, "ast_iostream_write() failed: %s\n", strerror(errno));
close_connection = 1;
break;
}