igmpproxy: update init.d script to procd and add a hotplug script

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 40997
v19.07.3_mercusys_ac12_duma
John Crispin 10 years ago
parent 21b0a8d8a4
commit 39798dc43b

@ -51,6 +51,8 @@ define Package/igmpproxy/install
$(INSTALL_CONF) ./files/igmpproxy.config $(1)/etc/config/igmpproxy $(INSTALL_CONF) ./files/igmpproxy.config $(1)/etc/config/igmpproxy
$(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/igmpproxy.init $(1)/etc/init.d/igmpproxy $(INSTALL_BIN) ./files/igmpproxy.init $(1)/etc/init.d/igmpproxy
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
$(INSTALL_BIN) ./files/igmpproxy.hotplug $(1)/etc/hotplug.d/iface/igmpproxy
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/igmpproxy $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/igmpproxy $(1)/usr/sbin/
endef endef

@ -0,0 +1,3 @@
#!/bin/sh
/etc/init.d/igmpproxy reload

@ -1,11 +1,10 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
# Copyright (C) 2010-2012 OpenWrt.org # Copyright (C) 2010-2014 OpenWrt.org
START=99 START=99
STOP=10 USE_PROCD=1
PROG=/usr/sbin/igmpproxy
SERVICE_DAEMONIZE=1 CONFIGFILE=/var/etc/igmpproxy.conf
SERVICE_WRITE_PID=1
# igmpproxy supports both a debug mode and verbosity, which are very useful # igmpproxy supports both a debug mode and verbosity, which are very useful
# when something isn't working. # when something isn't working.
@ -21,6 +20,7 @@ SERVICE_WRITE_PID=1
# OPTIONS="-v" - be verbose, this will write aditional information to syslog # OPTIONS="-v" - be verbose, this will write aditional information to syslog
OPTIONS="" OPTIONS=""
UPSTREAM=0
igmp_header() { igmp_header() {
local quickleave local quickleave
@ -34,30 +34,46 @@ igmp_header() {
} }
igmp_add_phyint() { igmp_add_phyint() {
local network direction altnets local network direction altnets device up
config_get network $1 network config_get network $1 network
config_get direction $1 direction config_get direction $1 direction
config_get altnets $1 altnet config_get altnets $1 altnet
device=$(uci_get_state network "$network" ifname "$network") json_load "$(ifstatus $network)"
echo -e "\nphyint $device $direction ratelimit 0 threshold 1" >> /var/etc/igmpproxy.conf json_get_var device l3_device
json_get_var up up
[ -n "$device" -a "$up" = "1" ] || return;
UPSTREAM=1
echo -e "\nphyint $device $direction ratelimit 0 threshold 1" >> /var/etc/igmpproxy.conf
if [ -n "$altnets" ]; then
local altnet
for altnet in $altnets; do
echo -e "\taltnet $altnet" >> /var/etc/igmpproxy.conf
done
fi
}
if [ -n "$altnets" ]; then service_triggers() {
local altnet procd_add_reload_trigger "igmpproxy"
for altnet in $altnets; do
echo -e "\taltnet $altnet" >> /var/etc/igmpproxy.conf
done
fi
} }
start() { start_service() {
config_load igmpproxy config_load igmpproxy
config_foreach igmp_header igmpproxy config_foreach igmp_header igmpproxy
config_foreach igmp_add_phyint phyint config_foreach igmp_add_phyint phyint
service_start /usr/sbin/igmpproxy $OPTIONS /etc/igmpproxy.conf
}
stop() { [ $UPSTREAM = 1 ] || return
service_stop /usr/sbin/igmpproxy
procd_open_instance
procd_set_param command $PROG
[ -n "$OPTIONS" ] && procd_append_param $OPTIONS
procd_append_param command $CONFIGFILE
procd_set_param file $CONFIGFILE
procd_set_param respawn
procd_close_instance
} }

Loading…
Cancel
Save