conf: add ip_prefix_list_clear function
authorFerry Huberts <ferry.huberts@pelagic.nl>
Mon, 16 Nov 2015 12:11:37 +0000 (13:11 +0100)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Mon, 16 Nov 2015 14:26:30 +0000 (15:26 +0100)
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
src/cfgparser/olsrd_conf.c
src/cfgparser/olsrd_conf.h

index 51a9891..23ab597 100644 (file)
@@ -1457,6 +1457,16 @@ ip_prefix_list_remove(struct ip_prefix_list **list, const union olsr_ip_addr *ne
   return 0;
 }
 
+void ip_prefix_list_clear(struct ip_prefix_list **list) {
+  if (!list) {
+    return;
+  }
+
+  while (*list) {
+    ip_prefix_list_remove(list, &((*list)->net.prefix), (*list)->net.prefix_len);
+  }
+}
+
 struct ip_prefix_list *
 ip_prefix_list_find(struct ip_prefix_list *list, const union olsr_ip_addr *net, uint8_t prefix_len)
 {
index 257f8ea..9b37529 100644 (file)
@@ -63,6 +63,8 @@ bool loadConfig(int *argc, char *argv[]);
 
 void set_default_cnf(struct olsrd_config *, char * configuration_file);
 
+void ip_prefix_list_clear(struct ip_prefix_list **list);
+
 void set_derived_cnf(struct olsrd_config * olsr_cnf);
 
 #endif /* _OLSRD_CONF_H */