Revert "mDNS: init ListOfFilteredHosts in the proper place and not at every received...
authorSaverio Proto <zioproto@gmail.com>
Mon, 13 Aug 2012 22:09:47 +0000 (00:09 +0200)
committerSaverio Proto <zioproto@gmail.com>
Mon, 13 Aug 2012 22:46:08 +0000 (00:46 +0200)
This reverts commit 0b0ddb77c04ca8f490ede4438acf7073f5a47be1.

Conflicts:

lib/mdns/src/mdns.c

It caused a segfault

lib/mdns/src/mdns.c
lib/mdns/src/mdns.h
lib/mdns/src/olsrd_plugin.c

index 57819ad..5aae0d1 100644 (file)
 #define IPH_HL(hdr) (((hdr)->ip_hl)*4)
 
 struct list_entity ListOfFilteredHosts;
+int FHListInit = 0;
 
-int
-PreInitMDNS(void) {
-listbackport_init_head(&ListOfFilteredHosts);
-return 0;
-}
 static uint16_t ip_checksum(char* data, int len)
 {
     uint sum = 0;
@@ -363,6 +359,11 @@ AddFilteredHost(const char *FilteredHost, void *data __attribute__ ((unused)),
   tmp = (struct FilteredHost *) malloc(sizeof(struct FilteredHost));
   listbackport_init_node(&tmp->list);
 
+  if(FHListInit == 0){
+    listbackport_init_head(&ListOfFilteredHosts);
+    FHListInit = 1;
+  }
+
   if(olsr_cnf->ip_version == AF_INET){
     res = inet_pton(AF_INET, FilteredHost, &tmp->host.v4);
     if(res > 0){
@@ -388,6 +389,13 @@ isInFilteredList(union olsr_ip_addr *src){
   struct FilteredHost *tmp, *iterator;
   struct ipaddr_str buf1;
   struct ipaddr_str buf2;
+  
+  if(FHListInit == 0){
+    listbackport_init_head(&ListOfFilteredHosts);
+    FHListInit = 1;
+  }
+
+
   if(listbackport_is_empty(&ListOfFilteredHosts)) {
     OLSR_PRINTF(2,"Accept packet captured because of filtered hosts ACL: List Empty\n");
     return 0;
index 39f9a60..c81c677 100644 (file)
@@ -77,7 +77,7 @@ struct FilteredHost{
 
 //extern int FanOutLimit;
 //extern int BroadcastRetransmitCount;
-int PreInitMDNS(void);
+
 void DoMDNS(int sd, void *x, unsigned int y);
 void DoElection(int skfd, void *x, unsigned int y);
 void BmfPError(const char *format, ...) __attribute__ ((format(printf, 1, 2)));
index 3d85f58..941a910 100644 (file)
@@ -60,7 +60,6 @@ static void __attribute__ ((destructor)) my_fini(void);
 
 //static struct olsr_cookie_info *prune_packet_history_timer_cookie;
 
-
 void olsr_plugin_exit(void);
 
 /* -------------------------------------------------------------------------
@@ -105,7 +104,6 @@ olsrd_plugin_init(void)
   //                 &PrunePacketHistory, NULL, prune_packet_history_timer_cookie->ci_id);
 
 
-  PreInitMDNS();
   return InitMDNS(NULL);
 }