a75cc984a0
This patch allows ez-ipupdate to use the default server for the specified DDNS service type when no server hostname is supplied by the user. In detail: The default config file supplied in the ez-ipupdate package does not include a "server" line, and ez-ipupdate itself does not require an explicit server (since it will select a server based on the service type). Unfortunately, if the user simply fills in the blanks in the OpenWrt-supplied ez-ipupdate config, the service will silently fail to start because the hotplug script inserts a line in the generated config which states "server=", and ez-ipupdate doesn't like a blank server setting. The above scenario doesn't seem like a good user experience, so this is a small patch to the hotplug script to omit the "server" line (and let ez-ipupdate select its own default) in the event that the user has not specified a server. Signed-off-by: Scott Dudley <spmsink@hotmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/packages@20783 3c298f89-4303-0410-b956-a3cf2f4a3e73
84 lines
1.6 KiB
Plaintext
84 lines
1.6 KiB
Plaintext
NAME=ez-ipupdate
|
|
COMMAND=/usr/sbin/$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 service $cfg service
|
|
|
|
config_get pidfile $cfg pidfile
|
|
pidfile=${pidfile:-/var/run/$NAME-$service-$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-$service-$dev.cache
|
|
|
|
config_get config $cfg config
|
|
[ -z "$config" ] && {
|
|
config=/var/run/$NAME-$service-$dev.conf
|
|
config_get username $cfg username
|
|
config_get password $cfg password
|
|
config_get hostname $cfg hostname
|
|
service=${service:-"dyndns"}
|
|
config_get server $cfg server
|
|
server_line=""
|
|
[ -n "$server" ] && {
|
|
server_line="server=$server"
|
|
}
|
|
cat > $config <<EOF
|
|
service-type=$service
|
|
$server_line
|
|
user=$username:$password
|
|
host=$hostname
|
|
cache-file=$cache
|
|
pid-file=$pidfile
|
|
interface=$dev
|
|
quiet
|
|
EOF
|
|
}
|
|
|
|
$COMMAND -c $config 2>&1 | logger -t $NAME &
|
|
}
|
|
;;
|
|
*)
|
|
cleanup $pidfile
|
|
;;
|
|
esac
|
|
esac
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
include /lib/network
|
|
scan_interfaces
|
|
config_load ddns
|
|
|
|
config_foreach ddns ddns
|
|
;;
|
|
esac
|