[packages] ddns-scripts: use /proc/uptime as time reference, this makes it immune...
authorJo-Philipp Wich <jow@openwrt.org>
Sat, 1 Jan 2011 16:52:37 +0000 (16:52 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sat, 1 Jan 2011 16:52:37 +0000 (16:52 +0000)
SVN-Revision: 24869

net/ddns-scripts/Makefile
net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh
net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_updater.sh

index af14e5395e2976d32989b50d7ff3e7689b723d22..add0ee8220f5a6f82c538d895f153e1071c67abd 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ddns-scripts
 PKG_VERSION:=1.0.0
-PKG_RELEASE:=10
+PKG_RELEASE:=11
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
index 0e2ab7fadeaaa4327483198c26be15ef684ad41f..19effeffae72b872acb10cfd71ee8997842f6bce 100644 (file)
@@ -122,3 +122,10 @@ start_daemon_for_all_ddns_sections()
                /usr/lib/ddns/dynamic_dns_updater.sh $section 0 > /dev/null 2>&1 &
        done
 }
+
+monotonic_time()
+{
+       local uptime
+       read uptime < /proc/uptime
+       echo "${uptime%%.*}"
+}
index 1cab8aa7d84f53f083cfbbf0f75aaacf8f2e04a8..a58b30729434cb25818d599f7eab02d3858292e0 100755 (executable)
@@ -206,7 +206,7 @@ echo $$ > /var/run/dynamic_dns/$service_id.pid
 
 
 #determine when the last update was
-current_time=$(date +%s)
+current_time=$(monotonic_time)
 last_update=$(( $current_time - (2*$force_interval_seconds) ))
 if [ -e "/var/run/dynamic_dns/$service_id.update" ]
 then
@@ -231,7 +231,7 @@ do
        current_ip=$(get_current_ip)
 
 
-       current_time=$(date +%s)
+       current_time=$(monotonic_time)
        time_since_update=$(($current_time - $last_update))
 
 
@@ -270,7 +270,7 @@ do
                verbose_echo ""
 
                #save the time of the update
-               current_time=$(date +%s)
+               current_time=$(monotonic_time)
                last_update=$current_time
                time_since_update='0'
                registered_ip=$current_ip