diff --git a/net/updatedd/Makefile b/net/updatedd/Makefile index 7c8f9ed1d..d5b5d79e1 100644 --- a/net/updatedd/Makefile +++ b/net/updatedd/Makefile @@ -113,6 +113,8 @@ endef define Package/updatedd/install $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) ./files/ddns.init $(1)/etc/init.d/ddns + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_DATA) ./files/ddns.config $(1)/etc/config/updatedd $(INSTALL_DIR) $(1)/usr/bin $(CP) $(PKG_INSTALL_DIR)/usr/bin/updatedd $(1)/usr/bin/ $(INSTALL_DIR) $(1)/usr/lib/updatedd diff --git a/net/updatedd/files/ddns.config b/net/updatedd/files/ddns.config new file mode 100644 index 000000000..bb6ed4ab1 --- /dev/null +++ b/net/updatedd/files/ddns.config @@ -0,0 +1,6 @@ +config updatedd + option ddns_service '' + option ddns_user '' + option ddns_passwd '' + option ddns_host '' + option ddns_update '0' diff --git a/net/updatedd/files/ddns.hotplug b/net/updatedd/files/ddns.hotplug new file mode 100644 index 000000000..9b3928296 --- /dev/null +++ b/net/updatedd/files/ddns.hotplug @@ -0,0 +1,15 @@ +NAME=updatedd +CONFIG=/etc/$NAME.conf +COMMAND=/usr/sbin/$NAME + +[ "$ACTION" = "ifup" -a "$INTERFACE" = "wan" ] && { + [ -x $COMMAND ] && [ -r $CONFIG ] && { + include /lib/network + scan_interfaces + + config_get ifname wan ifname + [ -n "$ifname" ] && { + /etc/init.d/ddns restart + } + } & +} diff --git a/net/updatedd/files/ddns.init b/net/updatedd/files/ddns.init index c096b2db7..2ebba42bd 100644 --- a/net/updatedd/files/ddns.init +++ b/net/updatedd/files/ddns.init @@ -1,9 +1,16 @@ #!/bin/sh /etc/rc.common # Copyright (C) 2006 OpenWrt.org +. /etc/functions.sh + +config_load updatedd +config_get ddns_service cfg1 ddns_service +config_get ddns_user cfg1 ddns_user +config_get ddns_passwd cfg1 ddns_passwd +config_get ddns_host cfg1 ddns_host +config_get ddns_update cfg1 ddns_update + start() { - [ -f /etc/default/ddns ] && . /etc/default/ddns - [ "$ddns_update" = 1 ] && { /usr/bin/updatedd -Y $ddns_service -- $ddns_user:$ddns_passwd $ddns_host } @@ -12,3 +19,8 @@ start() { stop() { killall updatedd } + +restart() { + stop + start +}