debug functions
authorvenaas <venaas>
Thu, 3 May 2007 13:27:26 +0000 (13:27 +0000)
committervenaas <venaas@e88ac4ed-0b26-0410-9574-a7f39faa03bf>
Thu, 3 May 2007 13:27:26 +0000 (13:27 +0000)
git-svn-id: https://svn.testnett.uninett.no/radsecproxy/trunk@66 e88ac4ed-0b26-0410-9574-a7f39faa03bf

debug.c [new file with mode: 0644]
debug.h [new file with mode: 0644]

diff --git a/debug.c b/debug.c
new file mode 100644 (file)
index 0000000..f507f50
--- /dev/null
+++ b/debug.c
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2007 Stig Venaas <venaas@uninett.no>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ */
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <stdarg.h>
+#include "debug.h"
+
+static uint8_t debug_level = 0;
+
+void debug(uint8_t level, char *format, ...) {
+    extern int errno;
+    
+    if (level >= debug_level) {
+       va_list ap;
+       va_start(ap, format);
+       vfprintf(stderr, format, ap);
+       va_end(ap);
+       if (errno) {
+           fprintf(stderr, ": ");
+           perror(NULL);
+           fprintf(stderr, "errno=%d\n", errno);
+       } else
+           fprintf(stderr, "\n");
+    }
+    if (level >= DBG_ERR)
+       exit(1);
+}
diff --git a/debug.h b/debug.h
new file mode 100644 (file)
index 0000000..6249ee9
--- /dev/null
+++ b/debug.h
@@ -0,0 +1,13 @@
+/*
+ * Copyright (C) 2007 Stig Venaas <venaas@uninett.no>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ */
+
+#define DBG_INFO 16
+#define DBG_WARN 32
+#define DBG_ERR 64
+
+void debug(uint8_t level, char *format, ...);