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>.
	* dict.c: Include "zassert.h" instead of <assert.h>.
This commit is contained in:
ajs 2004-11-24 17:14:49 +00:00
parent b9e0ee3186
commit cee3df1e4b
7 changed files with 49 additions and 5 deletions

View 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

View File

@ -14,19 +14,19 @@
* 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
/*

View 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

View File

@ -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();
}
/* Open log stream */
struct zlog *

View 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;

23
lib/zassert.h Normal file
View File

@ -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 */

View 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>