[packages] ddns-scripts: use /proc/uptime as time reference, this makes it immune against time warps (#8557)

git-svn-id: svn://svn.openwrt.org/openwrt/packages@24869 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
jow 2011-01-01 16:52:37 +00:00
parent eacdb63ba2
commit e9cf1d2d3f
3 changed files with 11 additions and 4 deletions

View 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)

View 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%%.*}"
}

View File

@ -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