blob: de67b47a4391e361b8d26b473333fc551f8b689b [file] [log] [blame]
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