From 5a1e3d11e1550dfc458a541373773f493f8ede26 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Thu, 5 Jun 2008 09:45:34 +0000 Subject: [PATCH] make ez-ipupdate uci aware, Signed-off-by: David Bird SVN-Revision: 11363 --- net/ez-ipupdate/Makefile | 8 +-- net/ez-ipupdate/files/ez-ipupdate.conf | 8 --- net/ez-ipupdate/files/ez-ipupdate.hotplug | 84 ++++++++++++++++++++--- 3 files changed, 75 insertions(+), 25 deletions(-) diff --git a/net/ez-ipupdate/Makefile b/net/ez-ipupdate/Makefile index 04382b1dfb..8b6808012c 100644 --- a/net/ez-ipupdate/Makefile +++ b/net/ez-ipupdate/Makefile @@ -28,10 +28,6 @@ define Package/ez-ipupdate URL:=http://ez-ipupdate.com/ endef -define Package/ez-ipupdate/conffiles -/etc/ez-ipupdate.conf -endef - # uses GNU configure define Build/Compile @@ -41,8 +37,8 @@ endef define Package/ez-ipupdate/install $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) $(PKG_BUILD_DIR)/ez-ipupdate $(1)/usr/sbin/ - $(INSTALL_DIR) $(1)/etc - $(INSTALL_CONF) ./files/ez-ipupdate.conf $(1)/etc/ + $(INSTALL_DIR) $(1)/etc/config/ + $(INSTALL_CONF) ./files/ez-ipupdate.config $(1)/etc/config/ddns $(INSTALL_DIR) $(1)/etc/hotplug.d/iface $(INSTALL_BIN) ./files/ez-ipupdate.hotplug $(1)/etc/hotplug.d/iface/30-ez-ipupdate endef diff --git a/net/ez-ipupdate/files/ez-ipupdate.conf b/net/ez-ipupdate/files/ez-ipupdate.conf index cb98275fd3..e69de29bb2 100644 --- a/net/ez-ipupdate/files/ez-ipupdate.conf +++ b/net/ez-ipupdate/files/ez-ipupdate.conf @@ -1,8 +0,0 @@ -service-type=zoneedit -user=myname:mypassword -host=mydomain.com -quiet - -# Do not change the lines below -cache-file=/tmp/ez-ipupdate.cache -pid-file=/var/run/ez-ipupdate.pid diff --git a/net/ez-ipupdate/files/ez-ipupdate.hotplug b/net/ez-ipupdate/files/ez-ipupdate.hotplug index 352c404486..f9c96a4101 100644 --- a/net/ez-ipupdate/files/ez-ipupdate.hotplug +++ b/net/ez-ipupdate/files/ez-ipupdate.hotplug @@ -1,14 +1,76 @@ NAME=ez-ipupdate -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" ] && \ - $COMMAND -c $CONFIG -i $ifname 2>&1 | logger -t $NAME - } & -} +case "$ACTION" in + ifup|ifdown) + cleanup() { + [ -e $1 ] && { + kill -9 $(cat $1) + rm $1 + } + } + + ddns() { + local cfg="$1" + config_get program $cfg program + [ "$program" = "$NAME" ] && { + config_get interface $cfg interface + [ "$interface" = "$INTERFACE" ] && { + config_get dev "$INTERFACE" ifname + + config_get enabled $cfg enabled + enabled=${enabled:-1} + + config_get pidfile $cfg pidfile + pidfile=${pidfile:-/var/run/$NAME-$dev.pid} + + case "$ACTION" in + ifdown) + cleanup $pidfile + ;; + *) + case "$enabled" in + 1|yes|true) + [ ! -e $pidfile ] && { + config_get cache $cfg cache + [ -z "$cache" ] && cache=/tmp/$NAME-$dev.cache + + config_get config $cfg config + [ -z "$config" ] && { + config=/var/run/$NAME-$dev.conf + config_get service $cfg service + config_get username $cfg username + config_get password $cfg password + config_get hostname $cfg hostname + service=${service:-"dyndns"} + cat > $config <&1 | logger -t $NAME & + } + ;; + *) + cleanup $pidfile + ;; + esac + esac + } + } + } + + + include /lib/network + scan_interfaces + config_load ddns + + config_foreach ddns ddns + ;; +esac -- 2.30.2