{GPL, other}: Relicense to MIT license.
[collectd.git] / src / utils_tail.c
index eaf8f73..9d05fe1 100644 (file)
@@ -18,7 +18,7 @@
  *
  * Author:
  *   Luke Heberling <lukeh at c-ware.com>
- *   Florian Forster <octo at verplant.org>
+ *   Florian Forster <octo at collectd.org>
  *
  * Description:
  *   Encapsulates useful code for plugins which must watch for appends to
@@ -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)
                {