Merge redistribute add and delete functions
authorVasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
Wed, 10 Mar 2010 08:21:29 +0000 (10:21 +0200)
committerVasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
Wed, 10 Mar 2010 08:21:29 +0000 (10:21 +0200)
lib/quagga/src/client.c
lib/quagga/src/quagga.c
lib/quagga/src/quagga.h

index f050d0f..cc84a46 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "common.h"
 #include "quagga.h"
+#include "packet.h"
 #include "client.h"
 
 static void *my_realloc(void *, size_t, const char *);
@@ -100,7 +101,7 @@ zclient_reconnect(void)
     }
     OLSR_FOR_ALL_RT_ENTRIES_END(tmp);
   }
-  zebra_enable_redistribute();
+  zebra_redistribute(ZEBRA_REDISTRIBUTE_ADD);
 
 }
 
index 04af3c7..9825c1c 100644 (file)
@@ -49,7 +49,7 @@ zebra_fini(void)
     }
     OLSR_FOR_ALL_RT_ENTRIES_END(tmp);
   }
-  zebra_disable_redistribute();
+  zebra_redistribute(ZEBRA_REDISTRIBUTE_DELETE);
 
 }
 
@@ -156,26 +156,13 @@ zebra_delroute(const struct rt_entry *r)
 }
 
 void
-zebra_enable_redistribute(void)
+zebra_redistribute(uint16_t cmd)
 {
   unsigned char type;
 
   for (type = 0; type < ZEBRA_ROUTE_MAX; type++)
     if (zebra.redistribute[type]) {
-      if (zclient_write(zpacket_redistribute(ZEBRA_REDISTRIBUTE_ADD, type)) < 0)
-        olsr_exit("(QUAGGA) Could not write redistribute packet!", EXIT_FAILURE);
-    }
-
-}
-
-void
-zebra_disable_redistribute(void)
-{
-  unsigned char type;
-
-  for (type = 0; type < ZEBRA_ROUTE_MAX; type++)
-    if (zebra.redistribute[type]) {
-      if (zclient_write(zpacket_redistribute(ZEBRA_REDISTRIBUTE_DELETE, type)) < 0)
+      if (zclient_write(zpacket_redistribute(cmd, type)) < 0)
         olsr_exit("(QUAGGA) Could not write redistribute packet!", EXIT_FAILURE);
     }
 
index 1254ed7..a46c3eb 100644 (file)
@@ -30,8 +30,7 @@ void zebra_init(void);
 void zebra_fini(void);
 int zebra_addroute(const struct rt_entry *);
 int zebra_delroute(const struct rt_entry *);
-void zebra_enable_redistribute(void);
-void zebra_disable_redistribute(void);
+void zebra_redistribute(uint16_t cmd);
 
 /*
  * Local Variables: