From 7202fa9cda6f0aaae636b9cc3e7ad2c394e55cae Mon Sep 17 00:00:00 2001 From: Michal Bloch Date: Fri, 5 Jan 2018 17:17:48 +0100 Subject: [PATCH] logger: add get size request Change-Id: I082213f0b46d24583d3cd0ae9208e32001552246 Signed-off-by: Michal Bloch --- include/logpipe.h | 1 + src/logger/logger.c | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/include/logpipe.h b/include/logpipe.h index ea68e83..7f29fe8 100644 --- a/include/logpipe.h +++ b/include/logpipe.h @@ -33,6 +33,7 @@ enum { DLOG_REQ_PIPE = 1 << 1, DLOG_REQ_CLEAR = 1 << 2, DLOG_REQ_HANDLE_LOGUTIL = 1 << 3, + DLOG_REQ_GETSIZE = 1 << 4, }; enum { diff --git a/src/logger/logger.c b/src/logger/logger.c index dd94fa0..1447f39 100755 --- a/src/logger/logger.c +++ b/src/logger/logger.c @@ -1381,6 +1381,18 @@ static void apply_reader_clear(void *ptr, void *user_data) reader->bytes_to_read = 0; } +static int service_writer_handle_req_getsize(struct logger *server, struct writer *wr, struct dlog_control_msg *msg) +{ + assert(server); + assert(wr); + assert(msg); + assert(msg->request == DLOG_REQ_GETSIZE); + + unsigned buf_size = wr->buf_ptr->size; + + return send_dlog_reply(wr->fd_entity.fd, DLOG_REQ_GETSIZE, DLOG_REQ_RESULT_OK, &buf_size, sizeof buf_size); +} + /** * @brief Service clear request * @details Handle a clear-buffer request @@ -1436,10 +1448,10 @@ static int service_writer_handle_req_ctrl(struct logger *server, struct writer * switch (msg->request) { case DLOG_REQ_CLEAR: return service_writer_handle_req_clear(server, wr, msg); - break; case DLOG_REQ_HANDLE_LOGUTIL: return service_writer_handle_req_util(server, wr, msg); - break; + case DLOG_REQ_GETSIZE: + return service_writer_handle_req_getsize(server, wr, msg); default: return -EINVAL; } -- 2.7.4