From b6a027fe4da6f66552b533f1314e5005b16c5455 Mon Sep 17 00:00:00 2001
|
From: Khem Raj <raj.khem@gmail.com>
|
Date: Wed, 29 Mar 2017 23:52:36 -0700
|
Subject: [PATCH 7/8] add error() API when error.h is not on platform
|
|
sign-off-by: Khem Raj <raj.khem@gmail.com>
|
---
|
sysdep.c | 24 ++++++++++++++++++++++++
|
sysdep.h | 2 ++
|
2 files changed, 26 insertions(+)
|
|
diff --git a/sysdep.c b/sysdep.c
|
index d8f181d..2518ec1 100644
|
--- a/sysdep.c
|
+++ b/sysdep.c
|
@@ -17,6 +17,7 @@
|
GNU General Public License for more details.
|
*/
|
|
+#define _GNU_SOURCE
|
#include <unistd.h>
|
#include <fcntl.h>
|
#include <stdlib.h>
|
@@ -794,3 +795,26 @@ int setenv(const char *name, const char *value, int overwrite)
|
return ret;
|
}
|
#endif
|
+
|
+#ifndef _ERROR_H_
|
+#define _ERROR_H_
|
+#include <stdarg.h>
|
+#include <stdio.h>
|
+#include <errno.h>
|
+
|
+void error(int status, int errnum, const char* format, ...)
|
+{
|
+ va_list ap;
|
+
|
+ fflush(stdout);
|
+ fprintf(stderr, "%s: ", program_invocation_name);
|
+ va_start(ap, format);
|
+ vfprintf(stderr, format, ap);
|
+ va_end(ap);
|
+ if (errnum)
|
+ fprintf(stderr, ":%d", errnum);
|
+ if (status)
|
+ exit(status);
|
+}
|
+#endif /* _ERROR_H_ */
|
+
|
diff --git a/sysdep.h b/sysdep.h
|
index 0122b95..4e60064 100644
|
--- a/sysdep.h
|
+++ b/sysdep.h
|
@@ -44,6 +44,8 @@ int tun_get_hwaddr(int fd, char *dev, uint8_t *hwaddr);
|
#if defined(__linux__)
|
#if defined(__GLIBC__)
|
#include <error.h>
|
+#else
|
+void error(int status, int errnum, const char* format, ...);
|
#endif
|
#define HAVE_VASPRINTF 1
|
#define HAVE_ASPRINTF 1
|
--
|
2.12.1
|