Updated debug output generation, tebles are now printed only upon changes. Also added...
authorAndreas Tonnesen <andreto@olsr.org>
Tue, 9 Nov 2004 21:09:58 +0000 (21:09 +0000)
committerAndreas Tonnesen <andreto@olsr.org>
Tue, 9 Nov 2004 21:09:58 +0000 (21:09 +0000)
src/defs.h
src/generate_msg.c
src/generate_msg.h
src/hna_set.c
src/hna_set.h
src/main.c
src/olsr.c
src/parser.c
src/unix/ifnet.c

index c26a38c..42e4189 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: defs.h,v 1.24 2004/11/05 14:33:31 tlopatic Exp $
+ * $Id: defs.h,v 1.25 2004/11/09 21:09:57 kattemat Exp $
  *
  */
 
@@ -99,7 +99,6 @@ char ipv6_buf[100];             /* buffer for IPv6 inet_htop */
 olsr_bool disp_pack_in;               /* display incoming packet content? */
 olsr_bool disp_pack_out;               /* display outgoing packet content? */
 
-
 int llinfo;
 
 olsr_bool inet_tnl_added; /* If Internet gateway tunnel is added */
index 40c5fc7..a74c0ae 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: generate_msg.c,v 1.14 2004/11/08 23:25:57 tlopatic Exp $
+ * $Id: generate_msg.c,v 1.15 2004/11/09 21:09:58 kattemat Exp $
  *
  */
 
 #include "link_set.h"
 #include "two_hop_neighbor_table.h"
 
+
+static char pulsedata[] = {'\\', '|', '/', '-'};
+#define PULSE_MAX 4
+static olsr_u8_t pulse_state = 0;
+
+
 void
 generate_hello(void *p)
 {
@@ -96,31 +102,16 @@ generate_hna(void *p)
 }
 
 
-/**
- *Displays various tables depending on debuglevel
- */
 void
-generate_tabledisplay(void *foo)
+generate_stdout_pulse(void *foo)
 {
-  if(olsr_cnf->debug_level > 0) 
-    {
-#if defined USE_LINK_QUALITY
-      olsr_print_link_set();
-#endif
-      olsr_print_neighbor_table();
-#if defined USE_LINK_QUALITY
-      olsr_print_two_hop_neighbor_table();
-#endif
-      
-      if(olsr_cnf->debug_level > 1)
-       {
-         olsr_print_tc_table();
-         if(olsr_cnf->debug_level > 2) 
-           {
-             olsr_print_mprs_set();
-             olsr_print_mid_set();
-             olsr_print_duplicate_table();
-           }
-       }
-    }
+  if(olsr_cnf->debug_level == 0)
+    return;
+
+  stdout_pulse_set = OLSR_TRUE;
+
+  pulse_state = pulse_state == 3 ? 0 : pulse_state + 1;
+
+  printf("\b%c", pulsedata[pulse_state]);
+
 }
index cf54993..a85ada3 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: generate_msg.h,v 1.9 2004/11/03 18:19:54 tlopatic Exp $
+ * $Id: generate_msg.h,v 1.10 2004/11/09 21:09:58 kattemat Exp $
  *
  */
 
 
 #include "interfaces.h"
 
+#define STDOUT_PULSE_INT 0.6
+
+olsr_bool stdout_pulse_set;
+
 /* Functions */
 
 void
@@ -43,6 +47,6 @@ void
 generate_tc(void *);
 
 void
-generate_tabledisplay(void *);
+generate_stdout_pulse(void *);
 
 #endif
index 2359e80..a29650f 100644 (file)
@@ -20,7 +20,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: hna_set.c,v 1.8 2004/11/05 11:52:54 kattemat Exp $
+ * $Id: hna_set.c,v 1.9 2004/11/09 21:09:58 kattemat Exp $
  *
  */
 
@@ -290,6 +290,64 @@ olsr_time_out_hna_set(void *foo)
 
 
 
+/**
+ *Function that times out all entrys in the hna set and
+ *deletes the timed out ones.
+ *
+ *@return nada
+ */
+void
+olsr_print_hna_set()
+{
+  int index;
+  struct hna_entry *tmp_hna;
+  struct hna_net *tmp_net;
+  char tmp_ipv6net[45];
+
+  if(olsr_cnf->ip_version == AF_INET)
+    {
+      olsr_printf(1, "\n------------------------------------------------ HNA SET\n\n");
+      olsr_printf(1, "IP net          netmask         GW IP\n");
+    }
+  else
+    {
+      olsr_printf(1, "\n------------------------------------------------- HNA SET\n\n");
+      olsr_printf(1, "IP net/prefixlen               GW IP\n");
+    }
+
+  for(index=0;index<HASHSIZE;index++)
+    {
+      tmp_hna = hna_set[index].next;
+      /* Check all entrys */
+      while(tmp_hna != &hna_set[index])
+       {
+         /* Check all networks */
+         tmp_net = tmp_hna->networks.next;
+
+         while(tmp_net != &tmp_hna->networks)
+           {
+             if(olsr_cnf->ip_version == AF_INET)
+               {
+                 olsr_printf(1, "%-15s ", olsr_ip_to_string(&tmp_net->A_network_addr));
+                 olsr_printf(1, "%-15s ", olsr_ip_to_string((union olsr_ip_addr *)&tmp_net->A_netmask.v4));
+                 olsr_printf(1, "%-15s\n", olsr_ip_to_string(&tmp_hna->A_gateway_addr));
+               }
+             else
+               {
+                 sprintf(tmp_ipv6net, "%s/%d", olsr_ip_to_string(&tmp_net->A_network_addr), tmp_net->A_netmask.v6);
+                 olsr_printf(1, "%-30s ", tmp_ipv6net);
+                 olsr_printf(1, "%s\n", olsr_ip_to_string(&tmp_hna->A_gateway_addr));
+               }
+
+             tmp_net = tmp_net->next;
+           }
+         tmp_hna = tmp_hna->next;
+       }
+    }
+
+}
+
+
 
 
 
index 58fd364..3808f72 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: hna_set.h,v 1.7 2004/10/18 13:13:36 kattemat Exp $
+ * $Id: hna_set.h,v 1.8 2004/11/09 21:09:58 kattemat Exp $
  *
  */
 
@@ -89,5 +89,7 @@ delete_hna_net(struct hna_net *);
 void
 delete_hna_entry(struct hna_entry *);
 
+void
+olsr_print_hna_set(void);
 
 #endif
index 62c97f3..da9c9fd 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: main.c,v 1.29 2004/11/05 14:33:31 tlopatic Exp $
+ * $Id: main.c,v 1.30 2004/11/09 21:09:58 kattemat Exp $
  *
  */
 
@@ -92,6 +92,8 @@ main(int argc, char *argv[])
 
   struct stat statbuf;
   char conf_file_name[FILENAME_MAX];
+
+  stdout_pulse_set = OLSR_FALSE;
   
 #ifdef WIN32
   WSADATA WsaData;
@@ -575,9 +577,9 @@ main(int argc, char *argv[])
        }
     }
 
-  /* Print tables to stdout */
+  /* Print pulse to stdout */
   if(olsr_cnf->debug_level > 0)
-    olsr_register_scheduler_event(&generate_tabledisplay, NULL, HELLO_INTERVAL, 0, NULL);
+    olsr_register_scheduler_event(&generate_stdout_pulse, NULL, STDOUT_PULSE_INT, 0, NULL);
   
   
   gettimeofday(&now, NULL);
index 699cb06..54e5e74 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: olsr.c,v 1.19 2004/11/07 20:09:11 tlopatic Exp $
+ * $Id: olsr.c,v 1.20 2004/11/09 21:09:58 kattemat Exp $
  *
  */
 
@@ -195,7 +195,28 @@ olsr_process_changes()
 #endif
 
       olsr_calculate_hna_routes();
+      
+      /* Print updated info */
+      if(olsr_cnf->debug_level > 0) 
+       {
+#ifdef USE_LINK_QUALITY
+         olsr_print_link_set();
+#endif
+         olsr_print_neighbor_table();
 
+         if(olsr_cnf->debug_level > 1)
+           olsr_print_tc_table();
+
+         if(olsr_cnf->debug_level > 2) 
+           {
+             olsr_print_mprs_set();
+             olsr_print_mid_set();
+             olsr_print_duplicate_table();
+           }
+         if(changes_hna)
+           olsr_print_hna_set();
+
+       }
       goto process_pcf;  
     }
   
@@ -217,6 +238,13 @@ olsr_process_changes()
 #endif
       olsr_calculate_hna_routes();
 
+      /* Print updated info */
+      if(olsr_cnf->debug_level > 1)
+       olsr_print_tc_table();
+
+      if(changes_hna)
+       olsr_print_hna_set();
+
       goto process_pcf;  
     }
 
@@ -225,6 +253,8 @@ olsr_process_changes()
       /* Update HNA routes */
       olsr_calculate_hna_routes();
 
+      olsr_print_hna_set();
+
       goto process_pcf;
     }
   
@@ -561,14 +591,22 @@ olsr_printf(int loglevel, char *format, ...)
 {
   va_list arglist;
 
-  va_start(arglist, format);
-
   if(loglevel <= olsr_cnf->debug_level)
     {
+
+      if(stdout_pulse_set)
+       {
+         printf("\b");
+         stdout_pulse_set = OLSR_FALSE;
+       }
+
+      va_start(arglist, format);
+      
       vprintf(format, arglist);
+      
+      va_end(arglist);
     }
 
-  va_end(arglist);
 
   return 0;
 }
index ea0d28c..02a14c1 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: parser.c,v 1.12 2004/11/07 20:09:11 tlopatic Exp $
+ * $Id: parser.c,v 1.13 2004/11/09 21:09:58 kattemat Exp $
  *
  */
 
@@ -345,7 +345,7 @@ parse_packet(struct olsr *olsr, int size, struct interface *in_if, union olsr_ip
          /* IPv4 */
          if (m->v4.ttl <= 0)
            {
-             olsr_printf(1, "Dropping packet type %d from neigh %s with TTL 0\n", 
+             olsr_printf(2, "Dropping packet type %d from neigh %s with TTL 0\n", 
                          m->v4.olsr_msgtype,
                          olsr_ip_to_string(from_addr)); 
              continue;
@@ -356,7 +356,7 @@ parse_packet(struct olsr *olsr, int size, struct interface *in_if, union olsr_ip
          /* IPv6 */
          if (m->v6.ttl <= 0) 
            {
-             olsr_printf(1, "Dropping packet type %d from %s with TTL 0\n", 
+             olsr_printf(2, "Dropping packet type %d from %s with TTL 0\n", 
                          m->v4.olsr_msgtype,
                          olsr_ip_to_string(from_addr)); 
              continue;
@@ -406,7 +406,7 @@ parse_packet(struct olsr *olsr, int size, struct interface *in_if, union olsr_ip
        {
          unk_chgestruct(&unkpacket, m);
          
-         olsr_printf(1, "Unknown type: %d, size %d, from %s\n",
+         olsr_printf(3, "Unknown type: %d, size %d, from %s\n",
                      m->v4.olsr_msgtype,
                      size,
                      olsr_ip_to_string(&unkpacket.originator));
index aa7d3c8..0b10052 100644 (file)
@@ -20,7 +20,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: ifnet.c,v 1.4 2004/11/07 20:09:12 tlopatic Exp $
+ * $Id: ifnet.c,v 1.5 2004/11/09 21:09:58 kattemat Exp $
  *
  */
 
@@ -116,7 +116,7 @@ check_interface_updates(void *foo)
       if(tmp_if->configured)
        chk_if_changed(tmp_if);
       else
-       chk_if_up(tmp_if, 1);
+       chk_if_up(tmp_if, 3);
     }
 
   return;
@@ -159,7 +159,7 @@ chk_if_changed(struct olsr_if *iface)
   /* Get flags (and check if interface exists) */
   if (ioctl(ioctl_s, SIOCGIFFLAGS, &ifr) < 0) 
     {
-      olsr_printf(1, "No such interface: %s\n", iface->name);
+      olsr_printf(3, "No such interface: %s\n", iface->name);
       goto remove_interface;
     }
 
@@ -184,13 +184,13 @@ chk_if_changed(struct olsr_if *iface)
   /* Check broadcast */
   if ((olsr_cnf->ip_version == AF_INET) && (!(ifp->int_flags & IFF_BROADCAST))) 
     {
-      olsr_printf(1, "\tNo broadcast - removing\n");
+      olsr_printf(3, "\tNo broadcast - removing\n");
       goto remove_interface;
     }
 
   if (ifp->int_flags & IFF_LOOPBACK)
     {
-      olsr_printf(1, "\tThis is a loopback interface - removing it...\n");
+      olsr_printf(3, "\tThis is a loopback interface - removing it...\n");
       goto remove_interface;
     }
 
@@ -231,9 +231,9 @@ chk_if_changed(struct olsr_if *iface)
       if(get_ipv6_address(ifr.ifr_name, &tmp_saddr6, iface->cnf->ipv6_addrtype) <= 0)
        {
          if(iface->cnf->ipv6_addrtype == IPV6_ADDR_SITELOCAL)
-           olsr_printf(1, "\tCould not find site-local IPv6 address for %s\n", ifr.ifr_name);
+           olsr_printf(3, "\tCould not find site-local IPv6 address for %s\n", ifr.ifr_name);
          else
-           olsr_printf(1, "\tCould not find global IPv6 address for %s\n", ifr.ifr_name);
+           olsr_printf(3, "\tCould not find global IPv6 address for %s\n", ifr.ifr_name);
          
          
          goto remove_interface;