]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
http.c: Reduce log spam
authorGeorge Joseph <gjoseph@digium.com>
Wed, 5 Jul 2017 20:31:43 +0000 (14:31 -0600)
committerGeorge Joseph <gjoseph@digium.com>
Tue, 11 Jul 2017 14:26:27 +0000 (09:26 -0500)
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 of the headers fprintf.

Change-Id: I17bd5f3621514152a7b2b263c801324c5e96568b

main/http.c

index cccc60b81ec932299c7c023476fab5d6e324b05c..40f7b521f3ea15d3837fac0f45c2e9db65ecb8e0 100644 (file)
@@ -505,7 +505,7 @@ void ast_http_send(struct ast_tcptls_session_instance *ser,
        }
 
        /* send http header */
-       fprintf(ser->f,
+       if (fprintf(ser->f,
                "HTTP/1.1 %d %s\r\n"
                "%s"
                "Date: %s\r\n"
@@ -521,17 +521,20 @@ void ast_http_send(struct ast_tcptls_session_instance *ser,
                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;
                        }
                }
@@ -546,7 +549,7 @@ void ast_http_send(struct ast_tcptls_session_instance *ser,
                                 * 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;
                                }