# it) and how often we need to force an update ( many services
# will expire your domain if you don't connect and do an update
# every so often). Use the "check_interval" to specify how
-# often to check whether an update is necessary, and the
-# "force_interval" option to specify how often to force an
-# update. Specify the units for these values with the "check_unit"
-# and the "force_unit" options. Units can be "days", "hours",
-# "minutes" or "seconds". The default force_unit is hours and the
-# default check_unit is seconds. The default check_interval is
-# 600 seconds, or ten minutes. The default force_interval is
-# 72 hours or 3 days.
+# often to check whether an update is necessary, the "retry_interval"
+# to specify how often to retry in case the update has failed, and
+# the "force_interval" option to specify how often to force an
+# update. Specify the units for these values with the "check_unit",
+# the "retry_init" and the "force_unit" options. Units can be
+# "days", "hours", "minutes" or "seconds". The default force_unit
+# is hours, the default retry_unit is seconds and the default
+# check_unit is seconds. The default check_interval is 600 seconds,
+# or ten minutes. The default retry_interval is 60 seconds, or one
+# minute. The default force_interval is 72 hours or 3 days.
#
#
#########################################################
option force_unit "hours"
option check_interval "10"
option check_unit "minutes"
+ option retry_interval "60"
+ option retry_unit "seconds"
#option ip_source "interface"
#option ip_interface "eth0.1"
check_interval=600
fi
+if [ -z "$retry_interval" ]
+then
+ retry_interval=60
+fi
+
if [ -z "$check_unit" ]
then
check_unit="seconds"
+#compute retry interval in seconds
+case "$retry_unit" in
+ "days" )
+ retry_interval_seconds=$(($retry_interval*60*60*24))
+ ;;
+ "hours" )
+ retry_interval_seconds=$(($retry_interval*60*60))
+ ;;
+ "minutes" )
+ retry_interval_seconds=$(($retry_interval*60))
+ ;;
+ "seconds" )
+ retry_interval_seconds=$retry_interval
+ ;;
+ * )
+ #default is seconds
+ retry_interval_seconds=$retry_interval
+ ;;
+esac
+
+
+
verbose_echo "force seconds = $force_interval_seconds"
verbose_echo "check seconds = $check_interval_seconds"
#here we actually connect, and perform the update
update_output=$( $retrieve_prog "$final_url" )
+ if [ $? -gt 0 ]
+ then
+ verbose_echo "update failed"
+ sleep $retry_interval_seconds
+ continue
+ fi
verbose_echo "Update Output:"
verbose_echo "$update_output"
# dnsExit.com free dynamic DNS update url
"dnsexit.com" "http://www.dnsexit.com/RemoteUpdate.sv?login=[USERNAME]&password=[PASSWORD]&host=[DOMAIN]&myip=[IP]"
+
+# OVH
+"ovh.com" "http://[USERNAME]:[PASSWORD]@www.ovh.com/nic/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]"
+
+# dns-o-matic is a free service by opendns.com for updating multiple hosts and
+# dynamic dns services in one api call. To update all your configured services
+# at once, use "all.dnsomatic.com as the hostname.
+"dnsomatic.com" "http://[USERNAME]:[PASSWORD]@updates.dnsomatic.com/nic/update?hostname=[DOMAIN]&myip=[IP]"
+
+# 3322.org
+"3322.org" "http://[USERNAME]:[PASSWORD]@members.3322.org/dyndns/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]"
+
+# namecheap.com
+"namecheap.com" "http://dynamicdns.park-your-domain.com/update?host=[USERNAME]&domain=[DOMAIN]&password=[PASSWORD]&ip=[IP]"