fix some timer-refactoring compiler warnings
authorHannes Gredler <hannes@gredler.at>
Fri, 29 Feb 2008 14:24:20 +0000 (15:24 +0100)
committerHannes Gredler <hannes@gredler.at>
Fri, 29 Feb 2008 14:24:20 +0000 (15:24 +0100)
13 files changed:
Makefile.inc
lib/nameservice/src/nameservice.c
lib/nameservice/src/olsrd_copy.c [deleted file]
lib/nameservice/src/olsrd_copy.h [deleted file]
src/duplicate_set.c
src/hna_set.c
src/link_set.c
src/lq_route.c
src/mid_set.c
src/scheduler.c
src/scheduler.h
src/tc_set.c
src/two_hop_neighbor_table.c

index 5b10993..4147022 100644 (file)
@@ -5,10 +5,10 @@
 #
 
 # activate debugging with 1 or deactivate with 0
-DEBUG ?= 1
+DEBUG ?= 0
 
 # compile OLSR_PRINTF out
-NO_DEBUG_MESSAGES ?= 1
+NO_DEBUG_MESSAGES ?= 0
 
 # the optimize option to be set for gcc
 OPTIMIZE ?= -O2
index d1b64db..7b0a268 100644 (file)
@@ -525,7 +525,7 @@ olsr_namesvc_delete_db_entry(struct db_entry *db)
        struct ipaddr_str strbuf;
 #endif
        OLSR_PRINTF(2, "NAME PLUGIN: %s timed out... deleting\n", 
-                               olsr_ip_to_string(&strbuf, &to_delete->originator));
+                               olsr_ip_to_string(&strbuf, &db->originator));
 
        olsr_start_write_file_timer();
        olsr_stop_timer(db->db_timer); /* stop timer if running */
diff --git a/lib/nameservice/src/olsrd_copy.c b/lib/nameservice/src/olsrd_copy.c
deleted file mode 100644 (file)
index 4918559..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 2005, Bruno Randolf <bruno.randolf@4g-systems.biz>
- * Copyright (c) 2004, Andreas T√łnnesen(andreto-at-olsr.org)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions 
- * are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the UniK olsr daemon nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-/*
- * Dynamic linked library for UniK OLSRd
- */
-/*************************************************************
- *                 TOOLS COPIED FROM OLSRD                   *
- *************************************************************/
-
-// these functions are copied from the main olsrd source
-// TODO: there must be a better way!!!
-
-#include <string.h>
-#include "olsrd_plugin.h"
-#include "olsrd_copy.h"
-
-#include "defs.h"
-
-/**
- *Checks if a timer has times out. That means
- *if it is smaller than present time.
- *@param timer the timeval struct to evaluate
- *@return positive if the timer has not timed out,
- *0 if it matches with present time and negative
- *if it is timed out.
- */
-int
-olsr_timed_out(struct timeval *timer)
-{
-  return(timercmp(timer, &now, <));
-}
-
-
-/**
- *Initiates a "timer", wich is a timeval structure,
- *with the value given in time_value.
- *@param time_value the value to initialize the timer with
- *@param hold_timer the timer itself
- *@return nada
- */
-void
-olsr_init_timer(olsr_u32_t time_value, struct timeval *hold_timer)
-{ 
-  olsr_u16_t  time_value_sec;
-  olsr_u16_t  time_value_msec;
-
-  time_value_sec = time_value/1000;
-  time_value_msec = time_value-(time_value_sec*1000);
-
-  hold_timer->tv_sec = time_value_sec;
-  hold_timer->tv_usec = time_value_msec*1000;   
-}
-
-
-/**
- *Generates a timestamp a certain number of milliseconds
- *into the future.
- *
- *@param time_value how many milliseconds from now
- *@param hold_timer the timer itself
- *@return nada
- */
-void
-olsr_get_timestamp(olsr_u32_t delay, struct timeval *hold_timer)
-{ 
-  olsr_u16_t  time_value_sec;
-  olsr_u16_t  time_value_msec;
-
-  time_value_sec = delay/1000;
-  time_value_msec= delay - (delay*1000);
-  
-  hold_timer->tv_sec = now.tv_sec + time_value_sec;
-  hold_timer->tv_usec = now.tv_usec + (time_value_msec*1000);   
-}
diff --git a/lib/nameservice/src/olsrd_copy.h b/lib/nameservice/src/olsrd_copy.h
deleted file mode 100644 (file)
index 58e34da..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2005, Bruno Randolf <bruno.randolf@4g-systems.biz>
- * Copyright (c) 2004, Andreas T√łnnesen(andreto-at-olsr.org)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions 
- * are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the UniK olsr daemon nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-/*
- * Dynamic linked library for UniK OLSRd
- */
-
-#ifndef _OLSRD_COPY
-#define _OLSRD_COPY
-
-#include <sys/time.h>
-#include <time.h>
-
-#include "olsr_types.h"
-
-int olsr_timed_out(struct timeval *timer);
-
-void olsr_init_timer(olsr_u32_t time_value, struct timeval *hold_timer);
-
-void olsr_get_timestamp(olsr_u32_t delay, struct timeval *hold_timer);
-
-
-#endif
index fc0bf3c..d3d3dd7 100644 (file)
@@ -72,15 +72,15 @@ olsr_init_duplicate_table(void)
 static void
 olsr_expire_dup_entry(void *context)
 {
+#if !defined(NODEBUG) && defined(DEBUG)
+  struct ipaddr_str buf;
+#endif
   struct dup_entry *dup;
 
   dup = context;
   dup->timer = NULL;
 
 #ifdef DEBUG
-#ifndef NODEBUG
-  struct ipaddr_str buf;
-#endif
   OLSR_PRINTF(5, "DUP TIMEOUT[%s] s: %d\n", 
               olsr_ip_to_string(&buf, &dup->addr),
               dup->seqno);
index fd0412b..cf8bd49 100644 (file)
@@ -204,6 +204,9 @@ olsr_add_hna_net(struct hna_entry *hna_gw, const union olsr_ip_addr *net, olsr_u
 static void
 olsr_expire_hna_net_entry(void *context)
 {
+#if !defined(NODEBUG) && defined(DEBUG)
+  struct ipaddr_str buf;
+#endif
   struct hna_net *net_to_delete;
   struct hna_entry *hna_gw;
 
@@ -212,13 +215,10 @@ olsr_expire_hna_net_entry(void *context)
   hna_gw = net_to_delete->hna_gw;
 
 #ifdef DEBUG
-#ifndef NODEBUG
-  struct ipaddr_str buf;
-#endif
   OLSR_PRINTF(5, "HNA: timeout %s/%u via hna-gw %s\n", 
               olsr_ip_to_string(&buf, &net_to_delete->A_network_addr),
               net_to_delete->prefixlen,
-              &hna_gw->A_gateway_addr);
+              olsr_ip_to_string(&buf, &hna_gw->A_gateway_addr));
 #endif
 
   /*
index a6fb68d..8be7122 100644 (file)
@@ -491,9 +491,9 @@ olsr_expire_link_hello_timer(void *context)
 
   link->L_link_quality = olsr_hyst_calc_instability(link->L_link_quality);
 
-  OLSR_PRINTF(1, "HYST[%s] HELLO timeout %0.3f\n",
+  OLSR_PRINTF(1, "HYST[%s] HELLO timeout %s\n",
               olsr_ip_to_string(&buf, &link->neighbor_iface_addr),
-              link->L_link_quality);
+              olsr_etx_to_string(link->L_link_quality));
 
   /* Update hello_timeout - NO SLACK THIS TIME */
   olsr_change_timer(link->link_hello_timer, link->last_htime * MSEC_PER_SEC,
@@ -902,15 +902,13 @@ void olsr_print_link_set(void)
   struct link_entry *walker;
   const int addrsize = olsr_cnf->ip_version == AF_INET ? 15 : 39;
 
-  OLSR_PRINTF(0, "\n--- %02d:%02d:%02d.%02d ---------------------------------------------------- LINKS\n\n",
-              nowtm->tm_hour,
-              nowtm->tm_min,
-              nowtm->tm_sec,
-              (int)now.tv_usec/10000U);
-  OLSR_PRINTF(1, "%-*s  %-6s %-6s %-6s %-6s %-6s %s\n", addrsize, "IP address", "hyst", "LQ", "lost", "total","NLQ", "ETX");
+  OLSR_PRINTF(0, "\n--- %s ---------------------------------------------------- LINKS\n\n",
+              olsr_wallclock_string());
+  OLSR_PRINTF(1, "%-*s  %-6s %-6s %-6s %-6s %-6s %s\n", addrsize,
+              "IP address", "hyst", "LQ", "lost", "total","NLQ", "ETX");
+
+  OLSR_FOR_ALL_LINK_ENTRIES(walker) {
 
-  for (walker = link_set; walker != NULL; walker = walker->next)
-  {
     struct ipaddr_str buf;
 #ifdef USE_FPM
     fpm etx;
@@ -936,7 +934,7 @@ void olsr_print_link_set(void)
                 walker->total_packets,
                olsr_etx_to_string(walker->neigh_link_quality),
                 olsr_etx_to_string(etx));
-  }
+  } OLSR_FOR_ALL_LINK_ENTRIES_END(walker);
 #endif
 }
 
index 5417f0a..c69ff85 100644 (file)
@@ -440,11 +440,8 @@ olsr_calculate_routing_table (void *context __attribute__((unused)))
    */
   olsr_spf_run_full(&cand_tree, &path_list, &path_count);
 
-  OLSR_PRINTF(2, "\n--- %02d:%02d:%02d.%02d ------------------------------------------------- DIJKSTRA\n\n",
-              nowtm->tm_hour,
-              nowtm->tm_min,
-              nowtm->tm_sec,
-              (int)now.tv_usec/10000);
+  OLSR_PRINTF(2, "\n--- %s ------------------------------------------------- DIJKSTRA\n\n",
+              olsr_wallclock_string());
 
 #ifdef SPF_PROFILING
   gettimeofday(&t3, NULL);
index de4adc3..255145c 100644 (file)
@@ -566,7 +566,8 @@ olsr_print_mid_set(void)
 {
   int idx;
 
-  OLSR_PRINTF(1, "mid set: %02d:%02d:%02d.%06lu\n",nowtm->tm_hour, nowtm->tm_min, nowtm->tm_sec, now.tv_usec);
+  OLSR_PRINTF(1, "\n--- %s ------------------------------------------------- MID\n\n",
+              olsr_wallclock_string());
 
   for(idx=0;idx<HASHSIZE;idx++)
     {
index 9da0cf3..f81b3ff 100644 (file)
@@ -407,8 +407,40 @@ olsr_walk_timers(clock_t *last_run)
 
 
 /**
- * Format an relative system time string.
+ * Format an absolute wallclock system time string.
  * May be called upto 4 times in a single printf() statement.
+ * Displays microsecond resulution.
+ *
+ * @return buffer to a formatted system time string.
+ */
+const char*
+olsr_wallclock_string(void)
+{
+  static char buf[4][sizeof("00:00:00.000000")];
+  static int idx = 0;
+  char *ret;
+  struct timeval now;
+  int sec, usec;
+
+  ret = buf[idx];
+  idx = (idx+1) & 3;
+
+  gettimeofday(&now, NULL);
+
+  sec = (int)now.tv_sec;
+  usec = (int)now.tv_usec;
+
+  snprintf(ret, sizeof(buf), "%02u:%02u:%02u.%06u",
+           sec / 3600, (sec % 3600) / 60, sec % 60, usec);
+
+  return ret;
+}
+
+
+/**
+ * Format an relative non-wallclock system time string.
+ * May be called upto 4 times in a single printf() statement.
+ * Displays millisecond resolution.
  *
  * @param absolute time expressed in clockticks
  * @return buffer to a formatted system time string.
@@ -416,10 +448,10 @@ olsr_walk_timers(clock_t *last_run)
 const char*
 olsr_clock_string(clock_t clock)
 {
-  static char buf[4][32];
+  static char buf[4][sizeof("00:00:00.000")];
   static int idx = 0;
   char *ret;
-  unsigned int sec,msec;
+  unsigned int sec, msec;
 
   ret = buf[idx];
   idx = (idx+1) & 3;
index 033a025..165878c 100644 (file)
@@ -98,7 +98,10 @@ struct timer_entry *olsr_start_timer(unsigned int, olsr_u8_t, olsr_bool,
                                      void (*)(void *), void *, olsr_cookie_t);
 void olsr_change_timer(struct timer_entry *, unsigned int, olsr_u8_t, olsr_bool);
 void olsr_stop_timer(struct timer_entry *);
+
+/* Printing timestamps */
 const char* olsr_clock_string(clock_t);
+const char* olsr_wallclock_string(void);
 
 /* Main scheduler loop */
 void olsr_scheduler(void) __attribute__((noreturn));
index 8ec0177..648c686 100644 (file)
@@ -746,10 +746,9 @@ olsr_print_tc_table(void)
   struct tc_entry *tc;
   const int ipwidth = olsr_cnf->ip_version == AF_INET ? 15 : 30;
 
-  OLSR_PRINTF(1,
-              "\n--- %02d:%02d:%02d.%02d ------------------------------------------------- TOPOLOGY\n\n"
+  OLSR_PRINTF(1, "\n--- %s ------------------------------------------------- TOPOLOGY\n\n"
               "%-*s %-*s %-5s  %-5s  %s\n",
-              nowtm->tm_hour, nowtm->tm_min, nowtm->tm_sec, (int)now.tv_usec / 10000,
+              olsr_wallclock_string(),
               ipwidth, "Source IP addr", ipwidth, "Dest IP addr", "LQ", "ILQ", "ETX");
 
   OLSR_FOR_ALL_TC_ENTRIES(tc) {
index 051f098..77433ca 100644 (file)
@@ -44,6 +44,7 @@
 #include "mid_set.h"
 #include "neighbor_table.h"
 #include "net_olsr.h"
+#include "scheduler.h"
 
 
 struct neighbor_2_entry two_hop_neighbortable[HASHSIZE];
@@ -235,13 +236,10 @@ olsr_print_two_hop_neighbor_table(void)
 #ifndef NODEBUG
   /* The whole function makes no sense without it. */
   int i;
-  OLSR_PRINTF(1, "\n--- %02d:%02d:%02d.02%d ----------------------- TWO-HOP NEIGHBORS\n\n",
-              nowtm->tm_hour,
-              nowtm->tm_min,
-              nowtm->tm_sec,
-              (int)now.tv_usec);
 
-  OLSR_PRINTF(1, "IP addr (2-hop)  IP addr (1-hop)  TLQ\n");
+  OLSR_PRINTF(1, "\n--- %s ----------------------- TWO-HOP NEIGHBORS\n\n"
+              "IP addr (2-hop)  IP addr (1-hop)  TLQ\n",
+              olsr_wallclock_string());
 
   for (i = 0; i < HASHSIZE; i++) {
     struct neighbor_2_entry *neigh2;