merge r4529 to trunk

This commit is contained in:
Jo-Philipp Wich 2009-05-16 17:19:06 +00:00
parent 82b15b30ab
commit 07b6a704c4
3 changed files with 46 additions and 37 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

@ -6,15 +6,20 @@ BIN=/usr/sbin/ffwatchd
boot()
{
if ! grep -q "$BIN" /etc/crontabs/root 2>/dev/null; then
echo "* * * * * $BIN running || /etc/init.d/freifunk-watchdog restart" >> /etc/crontabs/root
fi
# If watchdog service is enabled, install cronjob, create device node and start daemon
if /etc/init.d/freifunk-watchdog enabled 2>/dev/null; then
if ! grep -q "$BIN" /etc/crontabs/root 2>/dev/null; then
echo "* * * * * $BIN running || /etc/init.d/freifunk-watchdog restart" >> /etc/crontabs/root
fi
if lsmod | grep -q softdog; then
mknod /dev/watchdog c 10 130
fi
start
start
# If service is disabled, find and remove related cronjob
elif grep -q "$BIN" /etc/crontabs/root 2>/dev/null; then
sed -i -e "\\'$BIN'd" /etc/crontabs/root
fi
}
start()

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);
}
}
}
}