contrib/package/freifunk-watchdog: only monitor ad-hoc interfaces

This commit is contained in:
Jo-Philipp Wich 2009-05-16 17:15:11 +00:00
parent e928518ba7
commit 5723346226
2 changed files with 35 additions and 31 deletions

View 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

View 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, "device");
if(ucitmp)
{
ucitmp = ucix_get_option(itr->ctx, "wireless", ucitmp, "channel");
ucitmp = ucix_get_option(itr->ctx, "wireless", section, "ifname");
if(ucitmp)
{
t->channel = atoi(ucitmp);
strncpy(t->ifname, ucitmp, sizeof(t->ifname));
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, "bssid");
if(ucitmp)
{
strncpy(t->bssid, ucitmp, sizeof(t->bssid));
val++;
}
t->next = itr->list;
itr->list = t;
}
else
{
free(t);
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++;
}
}
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);
}
}
}
}