ubox/logd: free ubus context on exit
[project/ubox.git] / log / logread.c
index dcf3c08..676bb82 100644 (file)
@@ -208,14 +208,19 @@ static int usage(const char *prog)
 static void logread_fd_data_cb(struct ustream *s, int bytes)
 {
        while (true) {
-               int len;
                struct blob_attr *a;
+               int len, cur_len;
 
                a = (void*) ustream_get_read_buf(s, &len);
-               if (len < sizeof(*a) || len < blob_len(a) + sizeof(*a))
+               if (len < sizeof(*a))
                        break;
+
+               cur_len = blob_len(a) + sizeof(*a);
+               if (len < cur_len)
+                       break;
+
                log_notify(a);
-               ustream_consume(s, blob_len(a) + sizeof(*a));
+               ustream_consume(s, cur_len);
        }
        if (!log_follow)
                uloop_end();
@@ -308,6 +313,7 @@ int main(int argc, char **argv)
                }
 
                blob_buf_init(&b, 0);
+               blobmsg_add_u8(&b, "stream", 1);
                if (lines)
                        blobmsg_add_u32(&b, "lines", lines);
                else if (log_follow)