Portable build framework for OpenNTPD
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

120 lines
2.6 KiB

From 7720c6cbb7ff30abc1c4d85aada869294cc3db47 Mon Sep 17 00:00:00 2001
From: Brent Cook <busterb@gmail.com>
Date: Sun, 4 Jan 2015 22:19:51 -0600
Subject: [PATCH 01/12] make fatal/fatalx variadic like the other logging
functions
this factors out the guts of log_warn and adds logerr
---
src/usr.sbin/ntpd/log.c | 54 +++++++++++++++++++++++++++---------------------
src/usr.sbin/ntpd/ntpd.h | 4 ++--
2 files changed, 32 insertions(+), 26 deletions(-)
diff --git a/src/usr.sbin/ntpd/log.c b/src/usr.sbin/ntpd/log.c
index 618f4cc..e92924e 100644
--- a/src/usr.sbin/ntpd/log.c
+++ b/src/usr.sbin/ntpd/log.c
@@ -71,29 +71,33 @@ vlog(int pri, const char *fmt, va_list ap)
vsyslog(pri, fmt, ap);
}
-
void
-log_warn(const char *emsg, ...)
+vlogerr(int pri, const char *fmt, va_list ap)
{
char *nfmt;
- va_list ap;
/* best effort to even work in out of memory situations */
- if (emsg == NULL)
- logit(LOG_CRIT, "%s", strerror(errno));
- else {
- va_start(ap, emsg);
-
- if (asprintf(&nfmt, "%s: %s", emsg, strerror(errno)) == -1) {
+ if (fmt) {
+ if (asprintf(&nfmt, "%s: %s", fmt, strerror(errno)) == -1) {
/* we tried it... */
- vlog(LOG_CRIT, emsg, ap);
+ vlog(LOG_CRIT, fmt, ap);
logit(LOG_CRIT, "%s", strerror(errno));
} else {
vlog(LOG_CRIT, nfmt, ap);
free(nfmt);
}
- va_end(ap);
- }
+ } else
+ logit(LOG_CRIT, "%s", strerror(errno));
+}
+
+void
+log_warn(const char *emsg, ...)
+{
+ va_list ap;
+
+ va_start(ap, emsg);
+ vlogerr(LOG_CRIT, emsg, ap);
+ va_end(ap);
}
void
@@ -129,25 +133,27 @@ log_debug(const char *emsg, ...)
}
void
-fatal(const char *emsg)
+fatal(const char *emsg, ...)
{
- if (emsg == NULL)
- logit(LOG_CRIT, "fatal: %s", strerror(errno));
- else
- if (errno)
- logit(LOG_CRIT, "fatal: %s: %s",
- emsg, strerror(errno));
- else
- logit(LOG_CRIT, "fatal: %s", emsg);
+ va_list ap;
+
+ va_start(ap, emsg);
+ vlogerr(LOG_CRIT, emsg, ap);
+ va_end(ap);
exit(1);
}
void
-fatalx(const char *emsg)
+fatalx(const char *emsg, ...)
{
- errno = 0;
- fatal(emsg);
+ va_list ap;
+
+ va_start(ap, emsg);
+ vlog(LOG_CRIT, emsg, ap);
+ va_end(ap);
+
+ exit(1);
}
const char *
diff --git a/src/usr.sbin/ntpd/ntpd.h b/src/usr.sbin/ntpd/ntpd.h
index 4a768d8..31bc5a0 100644
--- a/src/usr.sbin/ntpd/ntpd.h
+++ b/src/usr.sbin/ntpd/ntpd.h
@@ -269,8 +269,8 @@ void log_warn(const char *, ...);
void log_warnx(const char *, ...);
void log_info(const char *, ...);
void log_debug(const char *, ...);
-void fatal(const char *);
-void fatalx(const char *);
+void fatal(const char *, ...);
+void fatalx(const char *, ...);
const char *log_sockaddr(struct sockaddr *);
/* ntp.c */
--
1.9.1