diff --git a/package/base-files/files/etc/config/system b/package/base-files/files/etc/config/system index 314f291870..d2124e4176 100644 --- a/package/base-files/files/etc/config/system +++ b/package/base-files/files/etc/config/system @@ -7,3 +7,4 @@ config timeserver ntp list server 1.openwrt.pool.ntp.org list server 2.openwrt.pool.ntp.org list server 3.openwrt.pool.ntp.org + option enable_server 0 diff --git a/package/base-files/files/etc/init.d/sysntpd b/package/base-files/files/etc/init.d/sysntpd index aa35da8313..bb42ef7d3a 100755 --- a/package/base-files/files/etc/init.d/sysntpd +++ b/package/base-files/files/etc/init.d/sysntpd @@ -8,24 +8,26 @@ SERVICE_WRITE_PID=1 SERVICE_PID_FILE=/var/run/sysntpd.pid start() { - [ -x $PROG ] || return 1 - local peers - - getpeers() { - config_get peers "$1" server - } + local args="-n" + local enable_server config_load system - config_foreach getpeers timeserver + config_get peers ntp server + config_get_bool enable_server ntp enable_server 0 + + if [ $enable_server -ne 0 ]; then + append args "-l" + fi if [ -n "$peers" ]; then local peer - local args="-n" for peer in $peers; do append args "-p $peer" done + fi + if [ "$args" != "-n" ]; then service_start /usr/sbin/ntpd $args fi }