reduce local variables
authorBernd Petrovitsch <bernd@firmix.at>
Wed, 5 Nov 2008 01:15:45 +0000 (02:15 +0100)
committerBernd Petrovitsch <bernd@firmix.at>
Wed, 5 Nov 2008 01:15:45 +0000 (02:15 +0100)
We have already a "all_zero" to compare an IP address. So lets const-ify it
and use it everywhere instead of the local null_addr's.
And Win32 is different one more time. Workaround that too.

src/link_set.c
src/main.c
src/olsr.c
src/olsr.h
src/unix/ifnet.c
src/win32/ifnet.c
src/win32/netinet/in.h

index 1fe83d1..ab2a678 100644 (file)
@@ -302,7 +302,6 @@ set_loss_link_multiplier(struct link_entry *entry)
   struct olsr_if *cfg_inter;
   struct olsr_lq_mult *mult;
   olsr_u32_t val = 0;
-  union olsr_ip_addr null_addr;
 
   /* find the interface for the link */
   inter = if_ifwithaddr(&entry->local_iface_addr);
@@ -315,17 +314,13 @@ set_loss_link_multiplier(struct link_entry *entry)
     }
   }
 
-  /* create a null address for comparison */
-  memset(&null_addr, 0, sizeof(union olsr_ip_addr));
-
   /* loop through the multiplier entries */
   for (mult = cfg_inter->cnf->lq_mult; mult != NULL; mult = mult->next) {
-
     /*
      * use the default multiplier only if there isn't any entry that
      * has a matching IP address.
      */
-    if ((val == 0 && ipequal(&mult->addr, &null_addr)) ||
+    if ((val == 0 && ipequal(&mult->addr, &all_zero)) ||
        ipequal(&mult->addr, &entry->neighbor_iface_addr)) {
       val = mult->value;
     }
index 480eda2..83d36d3 100644 (file)
@@ -151,9 +151,6 @@ main(int argc, char *argv[])
   /* Using PID as random seed */
   srandom(getpid());
 
-  /* Init widely used statics */
-  memset(&all_zero, 0, sizeof(all_zero));
-
   /*
    * Set configfile name and
    * check if a configfile name was given as parameter
index 5b0f8c2..9ba0386 100644 (file)
@@ -87,7 +87,9 @@ struct pcf
 static struct pcf *pcf_list;
 
 static olsr_u16_t message_seqno;
-union olsr_ip_addr all_zero;
+
+/* initialize it with all zeroes */
+const union olsr_ip_addr all_zero = { .v6 = IN6ADDR_ANY_INIT };
 
 /**
  *Initialize the message sequence number as a random value
index bd479ee..86c5068 100644 (file)
@@ -50,7 +50,7 @@ extern olsr_bool changes_neighborhood;
 extern olsr_bool changes_hna;
 extern olsr_bool changes_force;
 
-extern union olsr_ip_addr all_zero;
+extern const union olsr_ip_addr all_zero;
 
 void
 register_pcf(int (*)(int, int, int));
index bad7096..ccef428 100644 (file)
@@ -72,9 +72,6 @@
 
 #define BUFSPACE  (127*1024)   /* max. input buffer size to request */
 
-/* global variables are automatically initialized with '\0' */
-static const union olsr_ip_addr null_addr;
-
 #if 0
 int
 set_flag(char *ifname, short flag __attribute__((unused)))
@@ -444,7 +441,7 @@ int add_hemu_if (struct olsr_if *iface)
   ifp->int_next = ifnet;
   ifnet = ifp;
 
-  if (ipequal(&null_addr, &olsr_cnf->main_addr)) {
+  if (ipequal(&all_zero, &olsr_cnf->main_addr)) {
     olsr_cnf->main_addr = iface->hemu_ip;
     OLSR_PRINTF(1, "New main address: %s\n", olsr_ip_to_string(&buf, &olsr_cnf->main_addr));
     olsr_syslog(OLSR_LOG_INFO, "New main address: %s\n", olsr_ip_to_string(&buf, &olsr_cnf->main_addr));
@@ -807,7 +804,7 @@ chk_if_up(struct olsr_if *iface, int debuglvl __attribute__((unused)))
   /*
    * Set main address if this is the only interface
    */
-  if (ipequal(&null_addr, &olsr_cnf->main_addr)) {
+  if (ipequal(&all_zero, &olsr_cnf->main_addr)) {
     struct ipaddr_str buf;
     olsr_cnf->main_addr = ifp->ip_addr;
     OLSR_PRINTF(1, "New main address: %s\n", olsr_ip_to_string(&buf, &olsr_cnf->main_addr));
index 76dde02..0786f17 100644 (file)
@@ -592,7 +592,6 @@ void RemoveInterface(struct olsr_if *IntConf)
 int add_hemu_if(struct olsr_if *iface)
 {
   struct interface *ifp;
-  union olsr_ip_addr null_addr;
   olsr_u32_t addr[4];
   struct ipaddr_str buf;
   size_t name_size;
@@ -623,8 +622,7 @@ int add_hemu_if(struct olsr_if *iface)
   ifp->int_next = ifnet;
   ifnet = ifp;
 
-  memset(&null_addr, 0, olsr_cnf->ipsize);
-  if(ipequal(&null_addr, &olsr_cnf->main_addr))
+  if(ipequal(&all_zero, &olsr_cnf->main_addr))
     {
       olsr_cnf->main_addr = iface->hemu_ip;
       OLSR_PRINTF(1, "New main address: %s\n", olsr_ip_to_string(&buf, &olsr_cnf->main_addr));
index b260cf5..b249481 100644 (file)
@@ -47,4 +47,7 @@
 #include <ws2tcpip.h>
 #undef interface
 
+#undef IN6ADDR_ANY_INIT
+#define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
+
 #endif