Cleanup logging, convert asserts (except rfc5444 code for now) to OONF_ASSERT(_HEX)
authorHenning Rogge <henning.rogge@fkie.fraunhofer.de>
Tue, 13 Mar 2018 12:20:10 +0000 (13:20 +0100)
committerHenning Rogge <henning.rogge@fkie.fraunhofer.de>
Tue, 13 Mar 2018 12:20:10 +0000 (13:20 +0100)
23 files changed:
src-api/common/netaddr.h
src-api/common/netaddr_acl.c
src-api/common/string.c
src-api/core/oonf_cfg.c
src-api/core/oonf_logging.c
src-api/core/oonf_logging.h
src-api/core/oonf_logging_cfg.c
src-api/core/oonf_subsystem.c
src-plugins/nhdp/mpr/mpr.c
src-plugins/nhdp/mpr/neighbor-graph-flooding.c
src-plugins/nhdp/mpr/neighbor-graph-routing.c
src-plugins/nhdp/mpr/selection-rfc7181.c
src-plugins/nhdp/nhdp/nhdp_interfaces.c
src-plugins/nhdp/nhdp/nhdp_writer.c
src-plugins/nhdp/nhdpcheck/nhdpcheck.c
src-plugins/subsystems/oonf_class.c
src-plugins/subsystems/oonf_clock.c
src-plugins/subsystems/oonf_http.c
src-plugins/subsystems/oonf_rfc5444.c
src-plugins/subsystems/oonf_rfc5444.h
src-plugins/subsystems/oonf_socket.c
src-plugins/subsystems/oonf_timer.c
src-plugins/subsystems/os_linux/os_routing_linux.c

index f4c983a..fe7c1ca 100644 (file)
@@ -58,7 +58,6 @@
 #define IF_NAMESIZE 16
 #endif
 
-#include <assert.h>
 #include <string.h>
 
 #include "common/autobuf.h"
index 43042ed..2520fc5 100644 (file)
@@ -43,9 +43,9 @@
  * @file
  */
 
-#include "common/netaddr_acl.h"
 #include "common/common_types.h"
 #include "common/netaddr.h"
+#include "common/netaddr_acl.h"
 #include "common/string.h"
 
 static bool _is_in_array(const struct netaddr *, size_t, const struct netaddr *);
@@ -70,9 +70,6 @@ netaddr_acl_remove(struct netaddr_acl *acl) {
   free(acl->reject);
 
   memset(acl, 0, sizeof(*acl));
-
-  assert(acl->accept == NULL);
-  assert(acl->reject == NULL);
 }
 
 /**
index c286c89..031be2c 100644 (file)
@@ -43,7 +43,6 @@
  * @file
  */
 
-#include <assert.h>
 #include <ctype.h>
 #include <errno.h>
 #include <stdio.h>
index 5eabb8c..13e8fd5 100644 (file)
@@ -365,8 +365,7 @@ oonf_cfg_apply(void) {
   /*** phase 2: check configuration and apply it ***/
   /* validate configuration data */
   if (cfg_schema_validate(_oonf_raw_db, false, true, &log)) {
-    OONF_WARN(LOG_CONFIG, "Configuration validation failed");
-    OONF_WARN_NH(LOG_CONFIG, "%s", abuf_getptr(&log));
+    OONF_WARN(LOG_CONFIG, "Configuration validation failed: %s", abuf_getptr(&log));
     goto apply_failed;
   }
 
index 980fecc..27ece62 100644 (file)
@@ -87,6 +87,7 @@ const char *LOG_SEVERITY_NAMES[LOG_SEVERITY_MAX + 1] = {
   [LOG_SEVERITY_DEBUG] = "DEBUG",
   [LOG_SEVERITY_INFO] = "INFO",
   [LOG_SEVERITY_WARN] = "WARN",
+  [LOG_SEVERITY_ASSERT] = "ASSERT",
 };
 
 static uint32_t _log_warnings[LOG_MAXIMUM_SOURCES];
@@ -358,7 +359,6 @@ oonf_log_get_walltime(struct oonf_walltime_str *buf) {
  *
  * @param severity severity of the log event (LOG_SEVERITY_DEBUG to LOG_SEVERITY_WARN)
  * @param source source of the log event (LOG_LOGGING, ... )
- * @param no_header true if time header should not be created
  * @param file filename where the logging macro have been called
  * @param line line number where the logging macro have been called
  * @param hexptr pointer to binary buffer that should be appended as a hexdump
@@ -366,7 +366,7 @@ oonf_log_get_walltime(struct oonf_walltime_str *buf) {
  * @param format printf format string for log output plus a variable number of arguments
  */
 void
-oonf_log(enum oonf_log_severity severity, enum oonf_log_source source, bool no_header, const char *file, int line,
+oonf_log(enum oonf_log_severity severity, enum oonf_log_source source, const char *file, int line,
   const void *hexptr, size_t hexlen, const char *format, ...) {
   struct oonf_log_handler_entry *h, *iterator;
   struct oonf_log_parameters param;
@@ -385,12 +385,8 @@ oonf_log(enum oonf_log_severity severity, enum oonf_log_source source, bool no_h
 
   /* generate log string */
   abuf_clear(&_logbuffer);
-  if (!no_header) {
-    p1 = abuf_puts(&_logbuffer, oonf_log_get_walltime(&tbuf));
-
-    p2 =
-      abuf_appendf(&_logbuffer, " %s(%s) %s %d: ", LOG_SEVERITY_NAMES[severity], LOG_SOURCE_NAMES[source], file, line);
-  }
+  p1 = abuf_puts(&_logbuffer, oonf_log_get_walltime(&tbuf));
+  p2 = abuf_appendf(&_logbuffer, " %s(%s) %s %d: ", LOG_SEVERITY_NAMES[severity], LOG_SOURCE_NAMES[source], file, line);
   abuf_vappendf(&_logbuffer, format, ap);
 
   last = &abuf_getptr(&_logbuffer)[abuf_getlen(&_logbuffer) - 1];
@@ -411,7 +407,6 @@ oonf_log(enum oonf_log_severity severity, enum oonf_log_source source, bool no_h
 
   param.severity = severity;
   param.source = source;
-  param.no_header = no_header;
   param.file = file;
   param.line = line;
   param.buffer = abuf_getptr(&_logbuffer);
@@ -440,9 +435,26 @@ oonf_log(enum oonf_log_severity severity, enum oonf_log_source source, bool no_h
  * @param param logging parameter set
  */
 void
-oonf_log_stderr(struct oonf_log_handler_entry *entry __attribute__((unused)), struct oonf_log_parameters *param) {
+oonf_log_stderr(struct oonf_log_handler_entry *entry, struct oonf_log_parameters *param) {
+  bool *color = entry->custom;
+
+  if (color) {
+    switch (param->severity) {
+      case LOG_SEVERITY_INFO:
+        fputs("\033[0;33m", stderr);
+        break;
+      case LOG_SEVERITY_WARN:
+        fputs("\033[0;31m", stderr);
+        break;
+      default:
+        break;
+    }
+  }
   fputs(param->buffer, stderr);
   fputc('\n', stderr);
+  if (color && param->severity != LOG_SEVERITY_DEBUG) {
+    fputs("\033[0m;", stderr);
+  }
 }
 
 /**
index 80902a7..414e780 100644 (file)
@@ -48,7 +48,8 @@
 
 struct oonf_log_handler_entry;
 
-#include "string.h"
+#include <string.h>
+#include <stdlib.h>
 
 #include "common/autobuf.h"
 #include "common/common_types.h"
@@ -65,7 +66,8 @@ enum oonf_log_severity
   LOG_SEVERITY_DEBUG = 1 << 0,
   LOG_SEVERITY_INFO = 1 << 1,
   LOG_SEVERITY_WARN = 1 << 2,
-  LOG_SEVERITY_MAX = 1 << 2,
+  LOG_SEVERITY_ASSERT = 1 << 3,
+  LOG_SEVERITY_MAX = 1 << 3,
 };
 
 /*! Defines the builtin sources of a logging event. */
@@ -100,9 +102,6 @@ struct oonf_log_parameters {
   /*! source of logging event */
   enum oonf_log_source source;
 
-  /*! true if no header should be added to logging event */
-  bool no_header;
-
   /*! file where the logging event happened */
   const char *file;
 
@@ -153,20 +152,29 @@ struct oonf_log_parameters {
 #define BASEPATH_LENGTH 0
 #endif
 
+#ifdef NDEBUG
+#define OONF_DO_ABORT true
+#else
+#define OONF_DO_ABORT false
+#endif
+
 /**
  * Helper macro to define a logging macro
  * @param severity logging severity
  * @param source logging source
- * @param no_header true if the header should not be printed
  * @param hexptr pointer to buffer that should be hexdumped, NULL if no hexdump
  * @param hexlen length of buffer to be hexdumped, 0 if no hexdump
+ * @param condition additional condition for logging
+ * @param fail true to call abort after a log message, false to continue
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define _OONF_LOG(severity, source, no_header, hexptr, hexlen, format, args...)                                        \
+#define _OONF_LOG(severity, source, hexptr, hexlen, condition, fail, format, args...)                                  \
   do {                                                                                                                 \
-    if (oonf_log_mask_test(log_global_mask, source, severity))                                                         \
-      oonf_log(severity, source, no_header, &__FILE__[BASEPATH_LENGTH], __LINE__, hexptr, hexlen, format, ##args);     \
+    if ((condition) && oonf_log_mask_test(log_global_mask, source, severity)) {                                        \
+      oonf_log(severity, source, &__FILE__[BASEPATH_LENGTH], __LINE__, hexptr, hexlen, format, ##args);                \
+      if (OONF_DO_ABORT && (fail)) { abort(); }                                                                        \
+    }                                                                                                                  \
   } while (0)
 
 #ifdef OONF_LOG_DEBUG_INFO
@@ -176,15 +184,7 @@ struct oonf_log_parameters {
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define OONF_DEBUG(source, format, args...) _OONF_LOG(LOG_SEVERITY_DEBUG, source, false, NULL, 0, format, ##args)
-
-/**
- * Add a DEBUG level logging without header to the log handlers
- * @param source logging source
- * @param format printf style format string
- * @param args variable number of parameters for format string
- */
-#define OONF_DEBUG_NH(source, format, args...) _OONF_LOG(LOG_SEVERITY_DEBUG, source, true, NULL, 0, format, ##args)
+#define OONF_DEBUG(source, format, args...) _OONF_LOG(LOG_SEVERITY_DEBUG, source, NULL, 0, true, false, format, ##args)
 
 /**
  * Add a DEBUG level logging and a hexdump to the log handlers
@@ -194,8 +194,7 @@ struct oonf_log_parameters {
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define OONF_DEBUG_HEX(source, hexptr, hexlen, format, args...)                                                        \
-  _OONF_LOG(LOG_SEVERITY_DEBUG, source, false, hexptr, hexlen, format, ##args)
+#define OONF_DEBUG_HEX(source, hexptr, hexlen, format, args...) _OONF_LOG(LOG_SEVERITY_DEBUG, source, hexptr, hexlen, true, false, format, ##args)
 
 /**
  * Checks if a logging source should produce DEBUG level output
@@ -210,9 +209,7 @@ struct oonf_log_parameters {
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define OONF_DEBUG(source, format, args...)                                                                            \
-  do {                                                                                                                 \
-  } while (0)
+#define OONF_DEBUG(source, format, args...) do {} while (0)
 
 /**
  * Add a DEBUG level logging without header to the log handlers
@@ -220,9 +217,7 @@ struct oonf_log_parameters {
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define OONF_DEBUG_NH(source, format, args...)                                                                         \
-  do {                                                                                                                 \
-  } while (0)
+#define OONF_DEBUG_NH(source, format, args...) do {} while (0)
 
 /**
  * Add a DEBUG level logging and a hexdump to the log handlers
@@ -232,9 +227,7 @@ struct oonf_log_parameters {
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define OONF_DEBUG_HEX(source, hexptr, hexlen, format, args...)                                                        \
-  do {                                                                                                                 \
-  } while (0)
+#define OONF_DEBUG_HEX(source, hexptr, hexlen, format, args...) do {} while (0)
 
 /**
  * Checks if a logging source should produce DEBUG level output
@@ -251,15 +244,7 @@ struct oonf_log_parameters {
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define OONF_INFO(source, format, args...) _OONF_LOG(LOG_SEVERITY_INFO, source, false, NULL, 0, format, ##args)
-
-/**
- * Add a INFO level logging without header to the log handlers
- * @param source logging source
- * @param format printf style format string
- * @param args variable number of parameters for format string
- */
-#define OONF_INFO_NH(source, format, args...) _OONF_LOG(LOG_SEVERITY_INFO, source, true, NULL, 0, format, ##args)
+#define OONF_INFO(source, format, args...) _OONF_LOG(LOG_SEVERITY_INFO, source, NULL, 0, true, false, format, ##args)
 
 /**
  * Add a INFO level logging and a hexdump to the log handlers
@@ -269,8 +254,7 @@ struct oonf_log_parameters {
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define OONF_INFO_HEX(source, hexptr, hexlen, format, args...)                                                         \
-  _OONF_LOG(LOG_SEVERITY_INFO, source, false, hexptr, hexlen, format, ##args)
+#define OONF_INFO_HEX(source, hexptr, hexlen, format, args...) _OONF_LOG(LOG_SEVERITY_INFO, source, hexptr, hexlen, true, false, format, ##args)
 
 /**
  * Checks if a logging source should produce INFO level output
@@ -285,9 +269,7 @@ struct oonf_log_parameters {
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define OONF_INFO(source, format, args...)                                                                             \
-  do {                                                                                                                 \
-  } while (0)
+#define OONF_INFO(source, format, args...) do {  } while (0)
 
 /**
  * Add a INFO level logging without header to the log handlers
@@ -295,9 +277,7 @@ struct oonf_log_parameters {
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define OONF_INFO_NH(source, format, args...)                                                                          \
-  do {                                                                                                                 \
-  } while (0)
+#define OONF_INFO_NH(source, format, args...) do {  } while (0)
 
 /**
  * Add a INFO level logging and a hexdump to the log handlers
@@ -307,9 +287,7 @@ struct oonf_log_parameters {
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define OONF_INFO_HEX(source, hexptr, hexlen, format, args...)                                                         \
-  do {                                                                                                                 \
-  } while (0)
+#define OONF_INFO_HEX(source, hexptr, hexlen, format, args...)  do {  } while (0)
 
 /**
  * Checks if a logging source should produce INFO level output
@@ -325,15 +303,7 @@ struct oonf_log_parameters {
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define OONF_WARN(source, format, args...) _OONF_LOG(LOG_SEVERITY_WARN, source, false, NULL, 0, format, ##args)
-
-/**
- * Add a WARN level logging without header to the log handlers
- * @param source logging source
- * @param format printf style format string
- * @param args variable number of parameters for format string
- */
-#define OONF_WARN_NH(source, format, args...) _OONF_LOG(LOG_SEVERITY_WARN, source, true, NULL, 0, format, ##args)
+#define OONF_WARN(source, format, args...) _OONF_LOG(LOG_SEVERITY_WARN, source, NULL, 0, true, false, format, ##args)
 
 /**
  * Add a WARN level logging and a hexdump to the log handlers
@@ -343,8 +313,7 @@ struct oonf_log_parameters {
  * @param format printf style format string
  * @param args variable number of parameters for format string
  */
-#define OONF_WARN_HEX(source, hexptr, hexlen, format, args...)                                                         \
-  _OONF_LOG(LOG_SEVERITY_WARN, source, false, hexptr, hexlen, format, ##args)
+#define OONF_WARN_HEX(source, hexptr, hexlen, format, args...) _OONF_LOG(LOG_SEVERITY_WARN, source, hexptr, hexlen, true, false, format, ##args)
 
 /**
  * Checks if a logging source should produce WARN level output
@@ -353,6 +322,28 @@ struct oonf_log_parameters {
  */
 #define OONF_TEST_WARN(source) true
 
+/**
+ * Add an ASSERT condition with logging to the log handlers.
+ * Will abort after triggering the log output.
+ * @param condition assert condition that should be true.
+ * @param source logging source
+ * @param format printf style format string
+ * @param args variable number of parameters for format string
+ */
+#define OONF_ASSERT(condition, source, format, args...) _OONF_LOG(LOG_SEVERITY_ASSERT, source, NULL, 0, !(condition), true, format, ##args)
+
+/**
+ * Add an ASSERT condition with logging and a hexdump to the log handlers.
+ * Will abort after triggering the log output.
+ * @param condition assert condition that should be true.
+ * @param source logging source
+ * @param hexptr pointer to buffer that should be hexdumped
+ * @param hexlen length of buffer to be hexdumped
+ * @param format printf style format string
+ * @param args variable number of parameters for format string
+ */
+#define OONF_ASSERT_HEX(condition, source, format, args...) _OONF_LOG(LOG_SEVERITY_ASSERT, source, hexptr, hexlen, !(condition), true, format, ##args)
+
 /**
  * Definition of a logging handler
  */
@@ -417,8 +408,8 @@ EXPORT const struct oonf_libdata *oonf_log_get_libdata(void);
 EXPORT void oonf_log_printversion(struct autobuf *abuf);
 EXPORT const char *oonf_log_get_walltime(struct oonf_walltime_str *);
 
-EXPORT void oonf_log(enum oonf_log_severity, enum oonf_log_source, bool, const char *, int, const void *, size_t,
-  const char *, ...) __attribute__((format(printf, 8, 9)));
+EXPORT void oonf_log(enum oonf_log_severity, enum oonf_log_source, const char *, int, const void *, size_t,
+  const char *, ...) __attribute__((format(printf, 7, 8)));
 
 EXPORT void oonf_log_stderr(struct oonf_log_handler_entry *, struct oonf_log_parameters *);
 EXPORT void oonf_log_syslog(struct oonf_log_handler_entry *, struct oonf_log_parameters *);
@@ -430,7 +421,7 @@ EXPORT void oonf_log_file(struct oonf_log_handler_entry *, struct oonf_log_param
  */
 static INLINE void
 oonf_log_mask_clear(uint8_t *mask) {
-  memset(mask, LOG_SEVERITY_WARN, LOG_MAXIMUM_SOURCES);
+  memset(mask, LOG_SEVERITY_WARN | LOG_SEVERITY_ASSERT, LOG_MAXIMUM_SOURCES);
 }
 
 /**
index 1d27662..c542299 100644 (file)
@@ -75,6 +75,9 @@
 /*! configuration entry for activating file logging */
 #define LOG_FILE_ENTRY "file"
 
+/*! configuration entry for activating stderr color logging */
+#define LOG_STDERR_COLOR_ENTRY "stderr_color"
+
 /* prototype for configuration change handler */
 static void _cb_logcfg_apply(void);
 static void _apply_log_setting(
@@ -90,6 +93,7 @@ static struct cfg_schema_entry _logging_entries[] = {
   CFG_VALIDATE_BOOL(LOG_STDERR_ENTRY, "false", "Set to true to activate logging to stderr"),
   CFG_VALIDATE_BOOL(LOG_SYSLOG_ENTRY, "false", "Set to true to activate logging to syslog"),
   CFG_VALIDATE_STRING(LOG_FILE_ENTRY, "", "Set a filename to log to a file"),
+  CFG_VALIDATE_BOOL(LOG_STDERR_COLOR_ENTRY, "false", "Use ANSI colors for stderr logging"),
 };
 
 static struct cfg_schema_section _logging_section = {
@@ -101,7 +105,9 @@ static struct cfg_schema_section _logging_section = {
 
 /* global logger configuration */
 static uint8_t _logging_cfg[LOG_MAXIMUM_SOURCES];
-static struct oonf_log_handler_entry _stderr_handler = { .handler = oonf_log_stderr };
+
+static bool _stderr_color = false;
+static struct oonf_log_handler_entry _stderr_handler = { .handler = oonf_log_stderr, .custom = &_stderr_color };
 static struct oonf_log_handler_entry _syslog_handler = { .handler = oonf_log_syslog };
 static struct oonf_log_handler_entry _file_handler = { .handler = oonf_log_file };
 
@@ -173,6 +179,9 @@ oonf_logcfg_apply(struct cfg_db *db) {
   ptr = cfg_db_get_entry_value(db, LOG_SECTION, NULL, LOG_STDERR_ENTRY)->value;
   activate_stderr = cfg_get_bool(ptr);
 
+  ptr = cfg_db_get_entry_value(db, LOG_SECTION, NULL, LOG_STDERR_COLOR_ENTRY)->value;
+  _stderr_color = cfg_get_bool(ptr);
+
   /* and finally modify the logging handlers */
   /* log.file */
   if (activate_file && !list_is_node_added(&_file_handler._node)) {
index 553e47e..a83aed3 100644 (file)
@@ -43,7 +43,6 @@
  * @file
  */
 
-#include <assert.h>
 #include <dlfcn.h>
 #include <errno.h>
 #include <stdio.h>
@@ -155,7 +154,7 @@ void
 oonf_subsystem_configure(struct cfg_schema *schema, struct oonf_subsystem *subsystem) {
   struct cfg_schema_section *schema_section;
 
-  assert(subsystem->name);
+  OONF_ASSERT(subsystem->name, LOG_SUBSYSTEMS, "Subsystem name is not set");
 
   OONF_INFO(LOG_SUBSYSTEMS, "Configure subsystem %s", subsystem->name);
 
index 65e3e55..3718da7 100644 (file)
@@ -255,7 +255,7 @@ _validate_mpr_set(const struct nhdp_domain *domain, struct neighbor_graph *graph
   avl_for_each_element(&graph->set_n1, node_n1, _avl_node) {
     if (domain == nhdp_domain_get_flooding_domain()) {
       if (node_n1->link->flooding_willingness == RFC7181_WILLINGNESS_ALWAYS) {
-        assert(mpr_is_mpr(graph, &node_n1->addr));
+        OONF_ASSERT(mpr_is_mpr(graph, &node_n1->addr), LOG_MPR, "WILLINGNESS_ALWAYS Node is no MPR");
       }
     }
     else {
@@ -263,7 +263,7 @@ _validate_mpr_set(const struct nhdp_domain *domain, struct neighbor_graph *graph
 
       neighdata = nhdp_domain_get_neighbordata(domain, node_n1->neigh);
       if (neighdata->willingness == RFC7181_WILLINGNESS_ALWAYS) {
-        assert(mpr_is_mpr(graph, &node_n1->addr));
+        OONF_ASSERT(mpr_is_mpr(graph, &node_n1->addr), LOG_MPR, "WILLINGNESS_ALWAYS Node is no MPR");
       }
     }
   }
@@ -280,12 +280,12 @@ _validate_mpr_set(const struct nhdp_domain *domain, struct neighbor_graph *graph
      * there is at least one element in M that is also in N1(y). This is
      * equivalent to the requirement that d(y, M) is defined.
      */
-    assert(d_y_mpr < RFC7181_METRIC_INFINITE_PATH);
+    OONF_ASSERT(d_y_mpr < RFC7181_METRIC_INFINITE_PATH, LOG_MPR, "d_y path length %u is more than infinite", d_y_mpr);
 
     /*
      * Third property: For any y in N2, d(y,M) = d(y, N1).
      */
-    assert(d_y_mpr == d_y_n1);
+    OONF_ASSERT(d_y_mpr == d_y_n1, LOG_MPR, "d_y_path length %u should be %u", d_y_mpr, d_y_n1);
   }
 }
 #endif
index 72b1cc4..da45583 100644 (file)
@@ -160,7 +160,8 @@ _calculate_d_x_y(
 #endif
 
   idx = x->table_offset + y->table_offset;
-  assert(graph->d_x_y_cache);
+  OONF_ASSERT(graph->d_x_y_cache, LOG_MPR, "graph cache should be initialized");
+
   cost = graph->d_x_y_cache[idx];
   if (!cost) {
     cost1 = _calculate_d1_x(domain, x);
index ca067a3..abdff77 100644 (file)
@@ -171,7 +171,8 @@ _calculate_d_x_y(
 #endif
 
   idx = x->table_offset + y->table_offset;
-  assert(graph->d_x_y_cache);
+  OONF_ASSERT(graph->d_x_y_cache, LOG_MPR, "graph cache should be initialized");
+
   cost = graph->d_x_y_cache[idx];
   if (!cost) {
     cost1 = _calculate_d1_x(domain, x);
index c2cf6af..70ff4fa 100644 (file)
@@ -242,7 +242,7 @@ _process_unique_mprs(const struct nhdp_domain *domain, struct neighbor_graph *gr
     }
     OONF_DEBUG(
       LOG_MPR, "Number of possible MPRs for N node %s is %u", netaddr_to_string(&buf1, &node_n->addr), possible_mprs);
-    assert(possible_mprs > 0);
+    OONF_ASSERT(possible_mprs > 0, LOG_MPR, "There should be at least one possible MPR");
     if (possible_mprs == 1) {
       /* There is only one possible MPR to cover this 2-hop neighbor, so this
        * node must become an MPR. */
index c7e7d9d..2cd6fb7 100644 (file)
@@ -43,8 +43,6 @@
  * @file
  */
 
-#include <assert.h>
-
 #include "common/avl.h"
 #include "common/avl_comp.h"
 #include "common/common_types.h"
index f1e443e..4b684bc 100644 (file)
@@ -251,14 +251,12 @@ _cb_addMessageTLVs(struct rfc5444_writer *writer) {
   size_t willingness_size;
   uint8_t mprtypes[NHDP_MAXIMUM_DOMAINS];
   uint8_t mprtypes_size;
+  struct netaddr_str buf;
 
   target = oonf_rfc5444_get_target_from_writer(writer);
 
-  if (target != target->interface->multicast4 && target != target->interface->multicast6) {
-    struct netaddr_str buf;
-    OONF_WARN(LOG_NHDP_W, "target for NHDP is no interface multicast: %s", netaddr_to_string(&buf, &target->dst));
-    assert(0);
-  }
+  OONF_ASSERT(target != target->interface->multicast4 && target != target->interface->multicast6,
+                LOG_NHDP_W, "target for NHDP is no interface multicast: %s", netaddr_to_string(&buf, &target->dst));
 
   itime_encoded = rfc5497_timetlv_encode(_nhdp_if->refresh_interval);
   vtime_encoded = rfc5497_timetlv_encode(_nhdp_if->h_hold_time);
index 7be119a..56508b1 100644 (file)
@@ -166,7 +166,7 @@ _cb_message_start_callback(struct rfc5444_reader_tlvblock_context *context) {
   struct nhdp_interface *interf;
 
   interf = nhdp_interface_get(_protocol->input.interface->name);
-  assert(interf);
+  OONF_ASSERT(interf, LOG_NHDPCHECK, "Could not find NHDP interface %s", _protocol->input.interface->name);
 #endif
 
   /* check address length */
index 3291d00..a47118d 100644 (file)
@@ -43,7 +43,6 @@
  * @file
  */
 
-#include <assert.h>
 #include <stdlib.h>
 
 #include "common/avl.h"
@@ -113,9 +112,6 @@ _cleanup(void) {
  */
 void
 oonf_class_add(struct oonf_class *ci) {
-  assert(ci->name);
-  assert(ci->name[0]);
-
   /* round up size to make block extendable */
   ci->total_size = _roundup(ci->size);
 
index c89d29f..37f5f50 100644 (file)
@@ -43,7 +43,6 @@
  * @file
  */
 
-#include <assert.h>
 #include <ctype.h>
 #include <errno.h>
 #include <stdio.h>
index 195bde9..4d1180a 100644 (file)
@@ -244,8 +244,6 @@ _cleanup(void) {
  */
 void
 oonf_http_add(struct oonf_http_handler *handler) {
-  assert(handler->site && handler->site[0] == '/');
-
   handler->directory = handler->site[strlen(handler->site) - 1] == '/';
   handler->node.key = handler->site;
   avl_insert(&_http_site_tree, &handler->node);
@@ -642,9 +640,6 @@ static int
 _parse_http_header(char *header_data, size_t header_len, struct oonf_http_session *header) {
   size_t header_index;
 
-  assert(header_data);
-  assert(header);
-
   memset(header, 0, sizeof(struct oonf_http_session));
   header->method = header_data;
 
@@ -823,10 +818,6 @@ _parse_query_string(char *s, char **name, char **value, size_t count) {
   char *ptr;
   size_t i = 0;
 
-  assert(s);
-  assert(name);
-  assert(value);
-
   while (s != NULL && i < count) {
     name[i] = s;
 
index f9c0224..b8cb86a 100644 (file)
@@ -731,7 +731,7 @@ oonf_rfc5444_reconfigure_interface(struct oonf_rfc5444_interface *interf, struct
 
   if (port == 0) {
     /* delay configuration apply */
-    OONF_INFO_NH(LOG_RFC5444, "    delay configuration, we still lack to protocol port");
+    OONF_INFO(LOG_RFC5444, "    delay configuration, we still lack to protocol port");
     return;
   }
 
@@ -1056,12 +1056,11 @@ _print_packet_to_buffer(enum oonf_log_source source, union netaddr_socket *sock
     if (result) {
       OONF_WARN(source, "%s %s for printing: %s (%d)", error, netaddr_socket_to_string(&buf, sock),
         rfc5444_strerror(result), result);
-      OONF_WARN_NH(source, "%s", abuf_getptr(&_printer_buffer));
+      OONF_WARN(source, "packet: %s", abuf_getptr(&_printer_buffer));
     }
     else {
       OONF_DEBUG(source, "%s %s through %s:", success, netaddr_socket_to_string(&buf, sock), interf->name);
-
-      OONF_DEBUG_NH(source, "%s", abuf_getptr(&_printer_buffer));
+      OONF_DEBUG(source, "packet: %s", abuf_getptr(&_printer_buffer));
     }
   }
 }
@@ -1108,11 +1107,7 @@ _cb_receive_data(struct oonf_packet_socket *sock, union netaddr_socket *from, vo
   if (result < 0) {
     OONF_WARN(LOG_RFC5444, "Error while parsing incoming packet from %s: %s (%d)", netaddr_socket_to_string(&buf, from),
       rfc5444_strerror(result), result);
-
-    abuf_clear(&_printer_buffer);
-    abuf_hexdump(&_printer_buffer, "", ptr, length);
-
-    OONF_WARN_NH(LOG_RFC5444, "%s", abuf_getptr(&_printer_buffer));
+    OONF_WARN_HEX(LOG_RFC5444, ptr, length, "%s", abuf_getptr(&_printer_buffer));
   }
 }
 
index c0ae825..509b96e 100644 (file)
@@ -318,9 +318,7 @@ oonf_rfc5444_flush_target(struct oonf_rfc5444_target *target, bool force) {
  */
 static INLINE struct oonf_rfc5444_target *
 oonf_rfc5444_get_target_from_writer(struct rfc5444_writer *writer) {
-  assert(writer->msg_target);
-
-  return container_of(writer->msg_target, struct oonf_rfc5444_target, rfc5444_target);
+  return container_of_if_notnull(writer->msg_target, struct oonf_rfc5444_target, rfc5444_target);
 }
 
 /**
index f9684e0..8cb2990 100644 (file)
@@ -43,7 +43,6 @@
  * @file
  */
 
-#include <assert.h>
 #include <errno.h>
 #include <stdlib.h>
 #include <string.h>
@@ -143,10 +142,7 @@ _initiate_shutdown(void) {
  */
 void
 oonf_socket_add(struct oonf_socket_entry *entry) {
-  OONF_DEBUG(LOG_SOCKET, "Adding socket entry %d to scheduler\n", os_fd_get_fd(&entry->fd));
-
-  assert(entry->name);
-  assert(entry->name[0]);
+  OONF_DEBUG(LOG_SOCKET, "Adding socket entry %s (%d) to scheduler\n", entry->name, os_fd_get_fd(&entry->fd));
 
   list_add_before(&_socket_head, &entry->_node);
   os_fd_event_socket_add(&_socket_events, &entry->fd);
@@ -159,7 +155,7 @@ oonf_socket_add(struct oonf_socket_entry *entry) {
 void
 oonf_socket_remove(struct oonf_socket_entry *entry) {
   if (list_is_node_added(&entry->_node)) {
-    OONF_DEBUG(LOG_SOCKET, "Removing socket entry %d\n", os_fd_get_fd(&entry->fd));
+    OONF_DEBUG(LOG_SOCKET, "Removing socket entry %s (%d)\n", entry->name, os_fd_get_fd(&entry->fd));
 
     list_remove(&entry->_node);
     os_fd_event_socket_remove(&_socket_events, &entry->fd);
index 22cb4ca..be3de99 100644 (file)
@@ -43,7 +43,6 @@
  * @file
  */
 
-#include <assert.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
@@ -125,9 +124,6 @@ _cleanup(void) {
  */
 void
 oonf_timer_add(struct oonf_timer_class *ti) {
-  assert(ti->callback);
-  assert(ti->name);
-  assert(ti->name[0]);
   list_add_tail(&_timer_info_list, &ti->_node);
 }
 
@@ -166,9 +162,6 @@ oonf_timer_start_ext(struct oonf_timer_instance *timer, uint64_t first, uint64_t
   struct isonumber_str timebuf1;
 #endif
 
-  assert(timer->class);
-  assert(timer->jitter_pct <= 100);
-
   if (timer->_clock) {
     avl_remove(&_timer_tree, &timer->_node);
     timer->class->_stat_changes++;
index 1f18f80..d4dce5d 100644 (file)
@@ -264,7 +264,9 @@ os_routing_linux_set(struct os_route *route, bool set, bool del_similar) {
     route->_internal.nl_seq = seq;
     route->_internal._node.key = &route->_internal.nl_seq;
 
-    assert(!avl_is_node_added(&route->_internal._node));
+    OONF_ASSERT(!avl_is_node_added(&route->_internal._node),
+                LOG_OS_ROUTING, "route %s is already in feedback list!",
+                os_routing_to_string(&rbuf, &os_rt.p));
     avl_insert(&_rtnetlink_feedback, &route->_internal._node);
   }
   return 0;
@@ -282,7 +284,7 @@ os_routing_linux_query(struct os_route *route) {
   struct rtgenmsg *rt_gen;
   int seq;
 
-  assert(route->cb_finished != NULL && route->cb_get != NULL);
+  OONF_ASSERT(route->cb_finished != NULL && route->cb_get != NULL, LOG_OS_ROUTING, "illegal route query");
   memset(buffer, 0, sizeof(buffer));
 
   /* get pointers for netlink message */