When a response has a 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 out the content if the
calculated content_length is non-zero.
........
Merged revisions 411687 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@411688
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
/* calc content length */
if (out) {
- content_length += strlen(ast_str_buffer(out));
+ content_length += ast_str_strlen(out);
}
if (fd) {
/* send content */
if (method != AST_HTTP_HEAD || status_code >= 400) {
- if (out) {
+ if (content_length) {
if (fwrite(ast_str_buffer(out), content_length, 1, ser->f) != 1) {
ast_log(LOG_ERROR, "fwrite() failed: %s\n", strerror(errno));
}