Module: monitoring-plugins Branch: feature_check_curl Commit: 55aeb1a5267dfc474446435c63a65acb2be7b3cd Author: Andreas Baumann <m...@andreasbaumann.cc> Date: Thu May 4 21:21:20 2017 +0200 URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=55aeb1a
fixed failing tests due to wrong content_length calculation --- plugins/check_curl.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/plugins/check_curl.c b/plugins/check_curl.c index a2ded89..5f6905f 100644 --- a/plugins/check_curl.c +++ b/plugins/check_curl.c @@ -1715,6 +1715,7 @@ check_document_dates (const curlhelp_write_curlbuf *header_buf, char (*msg)[DEFA return date_result; } + int get_content_length (const curlhelp_write_curlbuf* header_buf, const curlhelp_write_curlbuf* body_buf) { @@ -1733,15 +1734,17 @@ get_content_length (const curlhelp_write_curlbuf* header_buf, const curlhelp_wri content_length_s = get_header_value (headers, nof_headers, "content-length"); if (!content_length_s) { - /* TODO: or header_buf->buflen + body_buf->buflen */ - return body_buf->buflen; + return header_buf->buflen + body_buf->buflen; } - /* TODO: trim */ + content_length_s += strspn (content_length_s, " \t"); content_length = atoi (content_length_s); + if (content_length != body_buf->buflen) { + /* TODO: should we warn if the actual and the reported body length doen't match? */ + } if (content_length_s) free (content_length_s); - return content_length; + return header_buf->buflen + body_buf->buflen; } /* TODO: is there a better way in libcurl to check for the SSL library? */