diff options
author | Richard Mudgett <rmudgett@digium.com> | 2014-04-23 18:03:41 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2014-04-23 18:03:41 +0000 |
commit | e6c4b9752116ecc71220c03db1493a05c38b051a (patch) | |
tree | bde401d1bc1831a2cd14419d5bc6d42ce7b309f6 | |
parent | 4b9b4790d95624152b2b0f0e474a9290c94516a6 (diff) |
http: Fix spurious ERROR message in responses with no content.
Backport -r411687 and fix the fix because content_length is the length of
out plus the length of the file controlled by fd.
When a response has an out content length of 0, fwrite would be called to
write a buffer with no data in it. This resulted in the following classic
error message:
[Apr 3 11:49:17] ERROR[26421] http.c: fwrite() failed: Success
This patch makes it so that we only attempt to write the content of out if
the out string is non-zero.
........
Merged revisions 412922 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........
Merged revisions 412923 from http://svn.asterisk.org/svn/asterisk/branches/11
........
Merged revisions 412924 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@412925 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | main/http.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/main/http.c b/main/http.c index 9d213ef61..a940ba2e1 100644 --- a/main/http.c +++ b/main/http.c @@ -443,8 +443,8 @@ void ast_http_send(struct ast_tcptls_session_instance *ser, /* send content */ if (method != AST_HTTP_HEAD || status_code >= 400) { - if (content_length) { - if (fwrite(ast_str_buffer(out), content_length, 1, ser->f) != 1) { + if (out && ast_str_strlen(out)) { + if (fwrite(ast_str_buffer(out), ast_str_strlen(out), 1, ser->f) != 1) { ast_log(LOG_ERROR, "fwrite() failed: %s\n", strerror(errno)); } } |