applied in [11363] thanks David Bird wrote: > Instead of requiring a pre-existing config, the patch > will create one from UCI settings (when enabled): > > config ddns > option enabled 0 > option interface wan > option program ez-ipupdate > option service zoneedit > option username myname > option password mypassword > option hostname mydomain.com > > You may also still use a specific configuration file: > > config ddns > option interface wan > option program ez-ipupdate > option config /etc/ez-ipupdate.conf > > The "program" option is required, and only supports ez-ipupdate in this pkg, > but the ddns UCI config may be used for other similar programs just the same. > The "interface" is also required and multiple ddns blocks with different > interfaces/settings are possible. > > Signed-off-by: David Bird <[EMAIL PROTECTED]> > > Index: net/ez-ipupdate/files/ez-ipupdate.hotplug > =================================================================== > --- net/ez-ipupdate/files/ez-ipupdate.hotplug (revision 11362) > +++ net/ez-ipupdate/files/ez-ipupdate.hotplug (working copy) > @@ -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 <<EOF > +service-type=$service > +user=$username:$password > +host=$hostname > +cache-file=$cache > +pid-file=$pidfile > +interface=$dev > +quiet > +EOF > + } > + > + $COMMAND -d -c $config 2>&1 | logger -t > $NAME & > + } > + ;; > + *) > + cleanup $pidfile > + ;; > + esac > + esac > + } > + } > + } > + > + > + include /lib/network > + scan_interfaces > + config_load ddns > + > + config_foreach ddns ddns > + ;; > +esac > Index: net/ez-ipupdate/files/ez-ipupdate.conf > =================================================================== > --- net/ez-ipupdate/files/ez-ipupdate.conf (revision 11362) > +++ net/ez-ipupdate/files/ez-ipupdate.conf (working copy) > @@ -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 > Index: net/ez-ipupdate/files/ez-ipupdate.config > =================================================================== > --- net/ez-ipupdate/files/ez-ipupdate.config (revision 0) > +++ net/ez-ipupdate/files/ez-ipupdate.config (revision 0) > @@ -0,0 +1,14 @@ > + > +config ddns > + option enabled 0 > + option interface wan > + option program ez-ipupdate > + option service zoneedit > + option username myname > + option password mypassword > + option hostname mydomain.com > + > +# config ddns > +# option interface wan > +# option program ez-ipupdate > +# option config /etc/ez-ipupdate.conf > Index: net/ez-ipupdate/Makefile > =================================================================== > --- net/ez-ipupdate/Makefile (revision 11362) > +++ net/ez-ipupdate/Makefile (working copy) > @@ -28,10 +28,6 @@ > 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 @@ > 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 > > > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel