contrib/package/freifunk-watchdog: only monitor ad-hoc interfaces
authorJo-Philipp Wich <jow@openwrt.org>
Sat, 16 May 2009 17:15:11 +0000 (17:15 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sat, 16 May 2009 17:15:11 +0000 (17:15 +0000)
contrib/package/freifunk-watchdog/Makefile
contrib/package/freifunk-watchdog/src/watchdog.c

index 439e047..e4cb550 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=freifunk-watchdog
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 PKG_BUILD_DEPENDS := uci
index 7bbb7c7..b5a573d 100644 (file)
@@ -205,44 +205,48 @@ static void load_wifi_uci_add_iface(const char *section, struct uci_itr_ctx *itr
        const char *ucitmp;
        int val = 0;
 
-       if( (t = (wifi_tuple_t *)malloc(sizeof(wifi_tuple_t))) != NULL )
+       ucitmp = ucix_get_option(itr->ctx, "wireless", section, "mode");
+       if( ucitmp && !strncmp(ucitmp, "adhoc", 5) )
        {
-               ucitmp = ucix_get_option(itr->ctx, "wireless", section, "ifname");
-               if(ucitmp)
+               if( (t = (wifi_tuple_t *)malloc(sizeof(wifi_tuple_t))) != NULL )
                {
-                       strncpy(t->ifname, ucitmp, sizeof(t->ifname));
-                       val++;
-               }
-
-               ucitmp = ucix_get_option(itr->ctx, "wireless", section, "bssid");
-               if(ucitmp)
-               {
-                       strncpy(t->bssid, ucitmp, sizeof(t->bssid));
-                       val++;
-               }
+                       ucitmp = ucix_get_option(itr->ctx, "wireless", section, "ifname");
+                       if(ucitmp)
+                       {
+                               strncpy(t->ifname, ucitmp, sizeof(t->ifname));
+                               val++;
+                       }
 
-               ucitmp = ucix_get_option(itr->ctx, "wireless", section, "device");
-               if(ucitmp)
-               {
-                       ucitmp = ucix_get_option(itr->ctx, "wireless", ucitmp, "channel");
+                       ucitmp = ucix_get_option(itr->ctx, "wireless", section, "bssid");
                        if(ucitmp)
                        {
-                               t->channel = atoi(ucitmp);
+                               strncpy(t->bssid, ucitmp, sizeof(t->bssid));
                                val++;
                        }
-               }
 
-               if( val == 3 )
-               {
-                       syslog(LOG_INFO, "Monitoring %s: bssid=%s channel=%d",
-                               t->ifname, t->bssid, t->channel);
+                       ucitmp = ucix_get_option(itr->ctx, "wireless", section, "device");
+                       if(ucitmp)
+                       {
+                               ucitmp = ucix_get_option(itr->ctx, "wireless", ucitmp, "channel");
+                               if(ucitmp)
+                               {
+                                       t->channel = atoi(ucitmp);
+                                       val++;
+                               }
+                       }
 
-                       t->next = itr->list;
-                       itr->list = t;
-               }
-               else
-               {
-                       free(t);
+                       if( val == 3 )
+                       {
+                               syslog(LOG_INFO, "Monitoring %s: bssid=%s channel=%d",
+                                       t->ifname, t->bssid, t->channel);
+
+                               t->next = itr->list;
+                               itr->list = t;
+                       }
+                       else
+                       {
+                               free(t);
+                       }
                }
        }
 }