wget: 2 tries (default: 20), timout 5 seconds (deault: 900)
[toast/tdyndns.git] / bin / client / tdyndns_client
index 7d4e9e0b73bfe7b897a8dc3c6779a44fe425b4f4..8fe810a115cfb9d7e05b40eacc43be4845e0f5ce 100755 (executable)
@@ -1,11 +1,13 @@
 #!/bin/sh
 
+# save as /usr/local/bin/tdyndns
+
 set -u
 
 # debug?
 
 if [ $# -gt 0 ] ; then
-       DOIT="echo "
+       DOIT="echo I: "
        set -x
 else
        DOIT=""
@@ -14,12 +16,12 @@ fi
 # functions
 
 die() {
-       echo "$1" >&2
+       echo "E: $1" >&2
        exit 1
 }
 
 warn() {
-       echo "$1" >&2
+       echo "W: $1" >&2
 }
 
 # variables
@@ -31,6 +33,7 @@ ZONE=dyn.example.com
 FQDN=$HOSTNAME.$USERNAME.$ZONE
 NS=ns.example.com
 URL="http://dyndns.example.com/nic/update?hostname=$FQDN&myip="
+WGET="wget -q --tries=2 --timeout=5"
 
 if [ -z "$HOSTNAME" ] ; then
        die "No hostname found."
@@ -39,8 +42,8 @@ fi
 # data
 
 # alternative: -4 icanhazip.com, -6 icanhazip.com or ipv{4,6}.icanhazip.com
-NEWIPV4=$(wget -q -O- http://ipv4.wtfismyip.com/text)
-NEWIPV6=$(wget -q -O- http://ipv6.wtfismyip.com/text)
+NEWIPV4=$($WGET -O- http://ipv4.wtfismyip.com/text)
+NEWIPV6=$($WGET -O- http://ipv6.wtfismyip.com/text)
 
 if command -v dig >/dev/null ; then
        OLDIPV4=$(dig -t a    +short $FQDN @$NS)
@@ -53,24 +56,24 @@ OLDIPV6=${OLDIPV6:-""}
 
 # old ipv4 gone
 if [ -n "$OLDIPV4" -a -z "$NEWIPV4" ] ; then
-       $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV4}&offline=yes"
-       logger -t${0##*/} -perr -- "removing $FQDN / $OLDIPV4"
+       $DOIT $WGET -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV4}&offline=yes"
+       $DOIT logger -t${0##*/} -perr -- "removing $FQDN / $OLDIPV4"
 fi
 
 # old ipv6 gone
 if [ -n "$OLDIPV6" -a -z "$NEWIPV6" ] ; then
-       $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV6}&offline=yes"
-       logger -t${0##*/} -perr -- "removing $FQDN / $OLDIPV6"
+       $DOIT $WGET -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV6}&offline=yes"
+       $DOIT logger -t${0##*/} -perr -- "removing $FQDN / $OLDIPV6"
 fi
 
 # new ipv4
 if [ -n "$NEWIPV4" -a "$NEWIPV4" != "$OLDIPV4" ] ; then
-       $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV4}"
-       logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV4"
+       $DOIT $WGET -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV4}"
+       $DOIT logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV4"
 fi
 
 # newipv6
 if [ -n "$NEWIPV6" -a "$NEWIPV6" != "$OLDIPV6" ] ; then
-       $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV6}"
-       logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV6"
+       $DOIT $WGET -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV6}"
+       $DOIT logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV6"
 fi