diff options
author | Thomas Adam <thomas@xteddy.org> | 2021-09-10 18:01:11 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2021-09-10 18:01:11 +0100 |
commit | b28fffc0f754b510796acbf367ae920eac90c92d (patch) | |
tree | 57fe8b3ee7f9d2ddd9dafb9b47887def6e5aa800 /log.c | |
parent | 3b10392bfce384abb2734e9a7052718b7d70f212 (diff) | |
parent | e6b40cb339e06b9084a9139a75d62fb7a6005448 (diff) | |
download | rtmux-b28fffc0f754b510796acbf367ae920eac90c92d.tar.gz rtmux-b28fffc0f754b510796acbf367ae920eac90c92d.tar.bz2 rtmux-b28fffc0f754b510796acbf367ae920eac90c92d.zip |
Merge branch 'obsd-master' into master
Diffstat (limited to 'log.c')
-rw-r--r-- | log.c | 35 |
1 files changed, 17 insertions, 18 deletions
@@ -98,28 +98,27 @@ log_close(void) /* Write a log message. */ static void printflike(1, 0) -log_vwrite(const char *msg, va_list ap) +log_vwrite(const char *msg, va_list ap, const char *prefix) { - char *fmt, *out; + char *s, *out; struct timeval tv; if (log_file == NULL) return; - if (vasprintf(&fmt, msg, ap) == -1) + if (vasprintf(&s, msg, ap) == -1) return; - if (stravis(&out, fmt, VIS_OCTAL|VIS_CSTYLE|VIS_TAB|VIS_NL) == -1) { - free(fmt); + if (stravis(&out, s, VIS_OCTAL|VIS_CSTYLE|VIS_TAB|VIS_NL) == -1) { + free(s); return; } + free(s); gettimeofday(&tv, NULL); - if (fprintf(log_file, "%lld.%06d %s\n", (long long)tv.tv_sec, - (int)tv.tv_usec, out) != -1) + if (fprintf(log_file, "%lld.%06d %s%s\n", (long long)tv.tv_sec, + (int)tv.tv_usec, prefix, out) != -1) fflush(log_file); - free(out); - free(fmt); } /* Log a debug message. */ @@ -132,7 +131,7 @@ log_debug(const char *msg, ...) return; va_start(ap, msg); - log_vwrite(msg, ap); + log_vwrite(msg, ap, ""); va_end(ap); } @@ -140,14 +139,16 @@ log_debug(const char *msg, ...) __dead void fatal(const char *msg, ...) { - char *fmt; + char tmp[256]; va_list ap; + if (snprintf(tmp, sizeof tmp, "fatal: %s: ", strerror(errno)) < 0) + exit (1); + va_start(ap, msg); - if (asprintf(&fmt, "fatal: %s: %s", msg, strerror(errno)) == -1) - exit(1); - log_vwrite(fmt, ap); + log_vwrite(msg, ap, tmp); va_end(ap); + exit(1); } @@ -155,13 +156,11 @@ fatal(const char *msg, ...) __dead void fatalx(const char *msg, ...) { - char *fmt; va_list ap; va_start(ap, msg); - if (asprintf(&fmt, "fatal: %s", msg) == -1) - exit(1); - log_vwrite(fmt, ap); + log_vwrite(msg, ap, "fatal: "); va_end(ap); + exit(1); } |