From 2278df1493e064c197913e49b5d1935942d83448 Mon Sep 17 00:00:00 2001 From: daniel Date: Tue, 6 May 2025 16:57:32 -0700 Subject: initial import --- src/error.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/error.c (limited to 'src/error.c') diff --git a/src/error.c b/src/error.c new file mode 100644 index 0000000..c5d718a --- /dev/null +++ b/src/error.c @@ -0,0 +1,57 @@ +#include +#include +#include +#include +#include + +extern bool use_syslog; + +/* error() - Print messages to stderr. + * + * Args: + * fmt - Message with format strings. + * ... - Optional arguments to fill format strings. + * + * Returns: + * Nothing. + */ +void error(const char *fmt, ...) { + char msg[8192] = {0}; + va_list vl; + + va_start(vl, fmt); + vsnprintf(msg, sizeof(msg), fmt, vl); + va_end(vl); + + fprintf(stderr, "%s\n", msg); + + if (use_syslog) { + syslog(LOG_INFO | LOG_USER, "%s", msg); + } +} + +/* error_fatal() - Print message to stderr and exit with EXIT_FAILURE + * + * Args: + * fmt - Message with format strings. + * ... - Optional arguments to fill format strings. + * + * Returns + * Nothing, but exits the program with EXIT_FAILURE + */ +void error_fatal(const char *fmt, ...) { + char msg[8192] = {0}; + va_list vl; + + va_start(vl, fmt); + vsnprintf(msg, sizeof(msg), fmt, vl); + va_end(vl); + + fprintf(stderr, "%s\n", msg); + + if (use_syslog) { + syslog(LOG_INFO | LOG_USER, "%s", msg); + } + + exit(EXIT_FAILURE); +} -- cgit v1.2.3