]> git.puffer.fish Git - mirror/frr.git/commitdiff
2004-11-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
authorajs <ajs>
Wed, 24 Nov 2004 17:14:49 +0000 (17:14 +0000)
committerajs <ajs>
Wed, 24 Nov 2004 17:14:49 +0000 (17:14 +0000)
* zassert.h: New header file to declare a quagga-specific assert macro.
* log.c: (_zlog_assert_failed) New function called when assert fails
  to log the error and abort.
* zebra.h: Include "zassert.h" instead of <assert.h>.
* regex.c: Include "zassert.h" instead of <assert.h>.
* dict.c: Include "zassert.h" instead of <assert.h>.

isisd/ChangeLog
isisd/dict.c
lib/ChangeLog
lib/log.c
lib/regex.c
lib/zassert.h [new file with mode: 0644]
lib/zebra.h

index f8d8d896022711cb84917548705a0611b257b79b..20be060a5723a7b871c4cc5c60fa8f061427533f 100644 (file)
@@ -1,3 +1,7 @@
+2004-11-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * dict.c: Include "zassert.h" instead of <assert.h>.
+
 2004-10-13 Hasso Tepper <hasso at quagga.net>
 
        * isis_main.c: Initialize access list. Although we haven't route
index 86206a3b7f9b46a0c29e721aa5089566d34ac1ea..784ec8427cc3ea2db20c7da09f684bf77de14416 100644 (file)
  * into proprietary software; there is no requirement for such software to
  * contain a copyright notice related to this source.
  *
- * $Id: dict.c,v 1.2 2004/09/10 20:48:21 hasso Exp $
+ * $Id: dict.c,v 1.3 2004/11/24 17:14:49 ajs Exp $
  * $Name:  $
  */
 
 #include <stdlib.h>
 #include <stddef.h>
-#include <assert.h>
+#include "zassert.h"
 #define DICT_IMPLEMENTATION
 #include "dict.h"
 
 #ifdef KAZLIB_RCSID
 static const char rcsid[] =
-  "$Id: dict.c,v 1.2 2004/09/10 20:48:21 hasso Exp $";
+  "$Id: dict.c,v 1.3 2004/11/24 17:14:49 ajs Exp $";
 #endif
 
 /*
index 10092d1c5ac4ccf1ba11daea3747f84bb0645857..6ba1d6f4f120e497643fab0c05ca7035906f176e 100644 (file)
@@ -1,3 +1,11 @@
+2004-11-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * zassert.h: New header file to declare a quagga-specific assert macro.
+       * log.c: (_zlog_assert_failed) New function called when assert fails
+         to log the error and abort.
+       * zebra.h: Include "zassert.h" instead of <assert.h>.
+       * regex.c: Include "zassert.h" instead of <assert.h>.
+
 2004-11-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
        * sigevent.c: (signal_init) Set up some default signal handlers
index c55bfcb18d0da4d378f0ac1112a37375f39be918..38f8eceaaecd0c72d2783b71a48e8fab4ab93f97 100644 (file)
--- a/lib/log.c
+++ b/lib/log.c
@@ -315,6 +315,15 @@ PLOG_FUNC(plog_debug, LOG_DEBUG)
 
 #undef PLOG_FUNC
 
+void
+_zlog_assert_failed (const char *assertion, const char *file,
+                    unsigned int line, const char *function)
+{
+  zlog_err("Assertion `%s' failed in file %s, line %u, function %s",
+          assertion,file,line,(function ? function : "?"));
+  abort();
+}
+
 \f
 /* Open log stream */
 struct zlog *
index 2eb7c11814c2d58a559026edc287015353bb0444..2f90dded95ea11466ad2028bc7a7f4e4a7171edb 100644 (file)
@@ -613,7 +613,7 @@ extract_number_and_incr (destination, source)
 # include <stdio.h>
 
 /* It is useful to test things that ``must'' be true when debugging.  */
-# include <assert.h>
+# include "zassert.h"
 
 static int debug;
 
diff --git a/lib/zassert.h b/lib/zassert.h
new file mode 100644 (file)
index 0000000..77ebf5d
--- /dev/null
@@ -0,0 +1,23 @@
+#ifndef _QUAGGA_ASSERT_H
+#define _QUAGGA_ASSERT_H
+
+extern void _zlog_assert_failed (const char *assertion, const char *file,
+                                unsigned int line, const char *function)
+                                __attribute__ ((noreturn));
+
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#define __ASSERT_FUNCTION    __func__
+#elif defined(__GNUC__)
+#define __ASSERT_FUNCTION    __FUNCTION__
+#else
+#define __ASSERT_FUNCTION    NULL
+#endif
+
+#define zassert(EX) ((void)((EX) ?  0 :        \
+                           (_zlog_assert_failed(#EX, __FILE__, __LINE__, \
+                                                __ASSERT_FUNCTION), 0)))
+
+#undef assert
+#define assert(EX) zassert(EX)
+
+#endif /* _QUAGGA_ASSERT_H */
index f2c396d8ac2f4ba7d65d766d05e0c24cbb925f72..5d0e2385513ab967fa89945b741a32ab20665a45 100644 (file)
@@ -95,7 +95,7 @@ typedef int socklen_t;
 
 /* misc include group */
 #include <stdarg.h>
-#include <assert.h>
+#include "zassert.h"
 
 #ifdef HAVE_LCAPS
 #include <sys/capability.h>