X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fubox.git;a=blobdiff_plain;f=log%2Flogread.c;h=676bb82b18be886a3cf14a66db197ae9c7b1a0f2;hp=dcf3c08a624d5d57eda56dd6f65a1cb56439dca4;hb=db070f15ac559e3bd406cb8b8cccf40f78e75094;hpb=907d046c8929fb74e5a3502a9498198695e62ad8 diff --git a/log/logread.c b/log/logread.c index dcf3c08..676bb82 100644 --- a/log/logread.c +++ b/log/logread.c @@ -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)