diff --git a/icwmp/Makefile b/icwmp/Makefile index 8894385af..45d6fe6b7 100755 --- a/icwmp/Makefile +++ b/icwmp/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=icwmp -PKG_VERSION:=8.3.8 +PKG_VERSION:=8.3.9 PKG_FIXUP:=autoreconf PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git PKG_SOURCE_PROTO:=git diff --git a/icwmp/files/etc/firewall.cwmp b/icwmp/files/etc/firewall.cwmp index 9bd6a7677..4eb6a6c96 100644 --- a/icwmp/files/etc/firewall.cwmp +++ b/icwmp/files/etc/firewall.cwmp @@ -6,7 +6,6 @@ log() { } if [ ! -f "/var/state/cwmp" ]; then - touch "/var/state/cwmp" exit 0; fi diff --git a/icwmp/files/etc/init.d/icwmpd b/icwmp/files/etc/init.d/icwmpd index 788a5b82e..1ad773c4a 100755 --- a/icwmp/files/etc/init.d/icwmpd +++ b/icwmp/files/etc/init.d/icwmpd @@ -1,16 +1,16 @@ #!/bin/sh /etc/rc.common # Copyright (C) 2015-2019 iopsys Software Solutions AB -. /lib/functions.sh -include /lib/network -. /usr/share/libubox/jshn.sh - START=99 -STOP=2 +STOP=00 USE_PROCD=1 PROG="/usr/sbin/icwmpd" +. /lib/functions.sh +. /usr/share/libubox/jshn.sh +include /lib/network + log() { echo "${@}"|logger -t cwmp.init -p info } @@ -58,41 +58,34 @@ wait_for_resolvfile() { } copy_cwmp_etc_files_to_varstate() { - if [ ! -f /var/state/cwmp ] - then - if [ -f /etc/icwmpd/cwmp ] - then - uci -q -c /etc/icwmpd delete cwmp.acs - uci -q -c /etc/icwmpd commit cwmp - cp /etc/icwmpd/cwmp /var/state/cwmp - else - touch /var/state/cwmp - fi + mkdir -p /var/run/icwmpd + + if [ -f /etc/icwmpd/cwmp ]; then + uci -q -c /etc/icwmpd delete cwmp.acs + uci -q -c /etc/icwmpd commit cwmp + cp -f /etc/icwmpd/cwmp /var/state/cwmp fi - mkdir -p /var/run/icwmpd - if [ -f /etc/icwmpd/icwmpd_backup_session.xml ] - then - mv /etc/icwmpd/icwmpd_backup_session.xml /var/run/icwmpd 2>/dev/null + if [ -f /etc/icwmpd/icwmpd_backup_session.xml ]; then + cp -f /etc/icwmpd/icwmpd_backup_session.xml /var/run/icwmpd/ 2>/dev/null fi - if [ -f /etc/icwmpd/dm_enabled_notify.xml ] - then - mv /etc/icwmpd/dm_enabled_notify /var/run/icwmpd 2>/dev/null + + if [ -f /etc/icwmpd/dm_enabled_notify.xml ]; then + cp -f /etc/icwmpd/dm_enabled_notify /var/run/icwmpd/ 2>/dev/null fi } copy_cwmp_varstate_files_to_etc() { - if [ -f /var/state/cwmp ] - then - cp /var/state/cwmp /etc/icwmpd 2>/dev/null + if [ -f /var/run/icwmpd/icwmpd_backup_session.xml ]; then + cp -f /var/run/icwmpd/icwmpd_backup_session.xml /etc/icwmpd/ 2>/dev/null fi - if [ -f /var/run/icwmpd/icwmpd_backup_session.xml ] - then - cp /var/run/icwmpd/icwmpd_backup_session.xml /etc/icwmpd 2>/dev/null + + if [ -f /var/run/icwmpd/dm_enabled_notify.xml ]; then + cp -f /var/run/icwmpd/dm_enabled_notify /etc/icwmpd/ 2>/dev/null fi - if [ -f /var/run/icwmpd/dm_enabled_notify.xml ] - then - cp /var/run/icwmpd/dm_enabled_notify /etc/icwmpd 2>/dev/null + + if [ -f /var/state/cwmp ]; then + cp -f /var/state/cwmp /etc/icwmpd/ fi } @@ -158,22 +151,6 @@ validate_defaults() { return 0; } -boot() { - local dhcp_url dhcp_discovery - - config_load cwmp - config_get_bool dhcp_discovery acs dhcp_discovery 1 - config_get dhcp_url acs dhcp_url "" - - if [ "${dhcp_discovery}" == "enable" ] || [ "${dhcp_discovery}" == "1" ]; then - if [ -z "${dhcp_url}" ]; then - log "dhcp discovery enabled but no dhcp url, trigger update" - /etc/icwmpd/update.sh - fi - fi - start -} - start_service() { local enable_cwmp local wan_interface @@ -217,15 +194,19 @@ start_service() { procd_close_instance } -stop_service() +service_stopped() { copy_cwmp_varstate_files_to_etc } reload_service() { - log "Restarting CWMP client" - stop - start + log "Reloading CWMP client" + ubus -t 1 call tr069 command '{"command":"reload"}' + if [ "$?" -ne "0" ]; then + log "Restarting CWMP client" + stop + start + fi } service_triggers() {