X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Futils_tail.c;h=0b31262d630d0a4ec14826e8f0094bf6be54531a;hb=9f6f901889d4c9f594b5ae1fd0f449fcdd2d8fe3;hp=eaf8f738d71e163d628fdfca13f0f32c3678c3a1;hpb=d9ba7e3ed5d93e9abd34f961fff51676a096ac02;p=collectd.git diff --git a/src/utils_tail.c b/src/utils_tail.c index eaf8f738..0b31262d 100644 --- a/src/utils_tail.c +++ b/src/utils_tail.c @@ -162,6 +162,7 @@ int cu_tail_readline (cu_tail_t *obj, char *buf, int buflen) /* Try to read from the filehandle. If that succeeds, everything appears to * be fine and we can return. */ + clearerr (obj->fh); if (fgets (buf, buflen, obj->fh) != NULL) { buf[buflen - 1] = 0; @@ -219,6 +220,8 @@ int cu_tail_read (cu_tail_t *obj, char *buf, int buflen, tailfunc_t *callback, while (42) { + size_t len; + status = cu_tail_readline (obj, buf, buflen); if (status != 0) { @@ -231,6 +234,14 @@ int cu_tail_read (cu_tail_t *obj, char *buf, int buflen, tailfunc_t *callback, if (buf[0] == 0) break; + len = strlen (buf); + while (len > 0) { + if (buf[len - 1] != '\n') + break; + buf[len - 1] = '\0'; + len--; + } + status = callback (data, buf, buflen); if (status != 0) {