X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=logger.c;h=7194320c4760f091d4fca4c43c689d26a45c7872;hp=311458bd2660b4c3776b40f699eca3958f955530;hb=2c696a96a2bd63d2ff0d5595622124ef9270b172;hpb=a7334b0952ab66c17ee787e36e6d2c5ceb387de6 diff --git a/logger.c b/logger.c index 311458bd2..7194320c4 100644 --- a/logger.c +++ b/logger.c @@ -62,11 +62,6 @@ typedef enum StreamState { STREAM_RUNNING } StreamState; -typedef enum LogTarget { - LOG_TARGET_SYSLOG, - LOG_TARGET_KMSG -} LogTarget; - struct Stream { Server *server; @@ -86,16 +81,9 @@ struct Stream { LIST_FIELDS(Stream, stream); }; -#define IOVEC_SET_STRING(iovec, s) \ - do { \ - (iovec).iov_base = s; \ - (iovec).iov_len = strlen(s); \ - } while(false); - static int stream_log(Stream *s, char *p, usec_t timestamp) { char header_priority[16], header_time[64], header_pid[16]; - struct msghdr msghdr; struct iovec iovec[5]; assert(s); @@ -139,6 +127,8 @@ static int stream_log(Stream *s, char *p, usec_t timestamp) { IOVEC_SET_STRING(iovec[0], header_priority); if (s->target == LOG_TARGET_SYSLOG) { + struct msghdr msghdr; + IOVEC_SET_STRING(iovec[1], header_time); IOVEC_SET_STRING(iovec[2], s->process); IOVEC_SET_STRING(iovec[3], header_pid); @@ -155,7 +145,7 @@ static int stream_log(Stream *s, char *p, usec_t timestamp) { IOVEC_SET_STRING(iovec[1], s->process); IOVEC_SET_STRING(iovec[2], header_pid); IOVEC_SET_STRING(iovec[3], p); - IOVEC_SET_STRING(iovec[4], "\n"); + IOVEC_SET_STRING(iovec[4], (char*) "\n"); if (writev(s->server->kmsg_fd, iovec, ELEMENTSOF(iovec)) < 0) return -errno; @@ -548,9 +538,9 @@ int main(int argc, char *argv[]) { for (;;) { struct epoll_event event; - int n; + int k; - if ((n = epoll_wait(server.epoll_fd, + if ((k = epoll_wait(server.epoll_fd, &event, 1, server.n_streams <= 0 ? TIMEOUT : -1)) < 0) { @@ -561,10 +551,10 @@ int main(int argc, char *argv[]) { goto fail; } - if (n <= 0) + if (k <= 0) break; - if ((r = process_event(&server, &event)) < 0) + if ((k = process_event(&server, &event)) < 0) goto fail; } r = 0;