summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-03-19 02:56:51 +0000
committerAlyssa Ross <hi@alyssa.is>2021-03-21 14:30:51 +0000
commitbf61d93febc8791858c7634cb045c65d82d4ada3 (patch)
tree7c9deb3b0d3a75fb293933e5e56cc7baba142091
parent29b36eebd46d52d3b229993c471fcaa270d0c257 (diff)
downloaducspi-vsock-bf61d93febc8791858c7634cb045c65d82d4ada3.tar
ucspi-vsock-bf61d93febc8791858c7634cb045c65d82d4ada3.tar.gz
ucspi-vsock-bf61d93febc8791858c7634cb045c65d82d4ada3.tar.bz2
ucspi-vsock-bf61d93febc8791858c7634cb045c65d82d4ada3.tar.lz
ucspi-vsock-bf61d93febc8791858c7634cb045c65d82d4ada3.tar.xz
ucspi-vsock-bf61d93febc8791858c7634cb045c65d82d4ada3.tar.zst
ucspi-vsock-bf61d93febc8791858c7634cb045c65d82d4ada3.zip
log: add die function
This is useful if we want to provide a more specific error message
than strerror can provide.

Message-Id: <20210319025648.17925-5-hi@alyssa.is>
Reviewed-by: Cole Helbling <cole.e.helbling@outlook.com>
-rw-r--r--log.c10
-rw-r--r--log.h8
2 files changed, 14 insertions, 4 deletions
diff --git a/log.c b/log.c
index cdfacd6..8a57105 100644
--- a/log.c
+++ b/log.c
@@ -62,6 +62,16 @@ void ilog(const char *fmt, ...)
 	va_end(ap);
 }
 
+void die(int eval, const char *fmt, ...)
+{
+	va_list ap;
+	va_start(ap, fmt);
+	velog(fmt, ap);
+	va_end(ap);
+
+	exit(eval);
+}
+
 void diee(int eval, const char *fmt, ...)
 {
 	va_list ap;
diff --git a/log.h b/log.h
index 7b40e48..706d42f 100644
--- a/log.h
+++ b/log.h
@@ -11,20 +11,20 @@ enum verbosity {
 
 extern enum verbosity verbosity;
 
+// Functions with an `e' suffix additionally print strerrno(errno).
+
 // If opt is a character that matches a standard UCSPI command line
 // verbosity option, sets the verbosity appropriately and returns
 // true.  Otherwise, returns false.
 _Bool set_verbosity(int opt);
 
-// Log an error message, followed by strerrno(errno), then exit with
-// status eval.
+// Log an error message then exit with status eval.
+_Noreturn void die(int eval, const char *fmt, ...);
 _Noreturn void diee(int eval, const char *fmt, ...);
 
 // Log an error message.
 void elog(const char *fmt, ...);
 void velog(const char *fmt, va_list args);
-
-// Log an error message, followed by strerror(errno).
 void veloge(const char *fmt, va_list args);
 
 // Log an informative message.