mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
icwmp: Reduce I/O on filesystem
This commit is contained in:
parent
32245d37c3
commit
4b5c88b015
6 changed files with 102 additions and 9 deletions
|
|
@ -5,11 +5,11 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libbbfdm
|
||||
PKG_VERSION:=6.1.7
|
||||
PKG_VERSION:=6.1.8
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bbf.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=683032db93a621911f3608adee04b03a4aedda7a
|
||||
PKG_SOURCE_VERSION:=c364c99501dc36bf7916697656d53d6c121071a1
|
||||
PKG_RELEASE=$(PKG_SOURCE_VERSION)
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=icwmp
|
||||
PKG_VERSION:=8.2.6-2021-11-03
|
||||
PKG_VERSION:=8.2.7-2021-11-09
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=61a71148daee9dfcdd5d94235c1acd0b57d2b8f1
|
||||
PKG_SOURCE_VERSION:=0aa8c57c419e05a6f7ac591339d886341166c7d6
|
||||
PKG_RELEASE=$(PKG_SOURCE_VERSION)
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ config acs 'acs'
|
|||
option periodic_inform_enable 'true'
|
||||
option periodic_inform_interval '1800'
|
||||
option periodic_inform_time '0001-01-01T00:00:00Z'
|
||||
option ParameterKey ''
|
||||
option dhcp_discovery 'enable'
|
||||
# compression possible configs: GZIP, Deflate, Disabled
|
||||
option compression 'Disabled'
|
||||
|
|
|
|||
|
|
@ -64,6 +64,24 @@ handle_icwmp_restart() {
|
|||
network_get_device curdev $INTERFACE
|
||||
[ -n "$curdev" ] && echo $curdev > $devfile || rm -f $devfile
|
||||
|
||||
if [ ! -f /var/state/cwmp ]
|
||||
then
|
||||
if [ -f /etc/icwmpd/cwmp ]
|
||||
then
|
||||
uci -c /etc/icwmpd delete cwmp.acs
|
||||
uci -c /etc/icwmpd commit cwmp
|
||||
cp /etc/icwmpd/cwmp /var/state/cwmp
|
||||
else
|
||||
touch /var/state/cwmp
|
||||
fi
|
||||
fi
|
||||
|
||||
uci -q -c /var/state/ get cwmp.cpe
|
||||
if [ "$?" -ne 0 ]; then
|
||||
unnamedcpe=`uci -q -c /var/state/ add cwmp cpe`
|
||||
uci -c /var/state/ -q rename cwmp.$unnamedcpe='cpe'
|
||||
fi
|
||||
|
||||
local vendorspecinf=`ubus call network.interface.${defwan} status | jsonfilter -e "@.data.vendorspecinf"`
|
||||
[ -n "$vendorspecinf" ] && {
|
||||
local url=""
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ include /lib/network
|
|||
. /usr/share/libubox/jshn.sh
|
||||
|
||||
START=99
|
||||
STOP=10
|
||||
STOP=2
|
||||
|
||||
USE_PROCD=1
|
||||
PROG="/usr/sbin/icwmpd"
|
||||
|
|
@ -158,7 +158,61 @@ service_running() {
|
|||
ubus wait_for usp.raw
|
||||
}
|
||||
|
||||
copy_cwmp_etc_files_to_varstate() {
|
||||
if [ ! -f /var/state/cwmp ]
|
||||
then
|
||||
if [ -f /etc/icwmpd/cwmp ]
|
||||
then
|
||||
uci -c /etc/icwmpd delete cwmp.acs
|
||||
uci -c /etc/icwmpd commit cwmp
|
||||
cp /etc/icwmpd/cwmp /var/state/cwmp
|
||||
else
|
||||
touch /var/state/cwmp
|
||||
fi
|
||||
fi
|
||||
|
||||
mkdir -p /var/state/icwmpd
|
||||
if [ -f /etc/icwmpd/.icwmpd_backup_session.xml ]
|
||||
then
|
||||
mv /etc/icwmpd/.icwmpd_backup_session.xml /var/state/icwmpd 2>/dev/null
|
||||
fi
|
||||
if [ -f /etc/icwmpd/.dm_enabled_notify.xml ]
|
||||
then
|
||||
mv /etc/icwmpd/.dm_enabled_notify /var/state/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
|
||||
fi
|
||||
if [ -f /var/state/icwmpd/.icwmpd_backup_session.xml ]
|
||||
then
|
||||
cp /var/state/icwmpd/.icwmpd_backup_session.xml /etc/icwmpd 2>/dev/null
|
||||
fi
|
||||
if [ -f /var/state/icwmpd/.dm_enabled_notify.xml ]
|
||||
then
|
||||
cp /var/state/icwmpd/.dm_enabled_notify /etc/icwmpd 2>/dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
start_service() {
|
||||
echo "$(date +"%T %D") Start service" >> /root/initlog
|
||||
echo "**************************************" >> /root/initlog
|
||||
#while true; do pid=$(pgrep 'icwmpd' | head -1); if [[ -n "$pid" ]]; then strace -s 2000 -vvtf -p "$pid" -o /root/stracelog; break; fi; done &
|
||||
echo "$(date +"%T %D") Start: Actual cwmp rc.d files" >> /root/initlog
|
||||
echo `ls /etc/rc.d/ | grep cwmp` >> /root/initlog
|
||||
if [ -f /etc/icwmpd/.icwmpd_backup_session.xml ]
|
||||
then
|
||||
echo "$(date +"%T %D") Start: Backup file content: " >> /root/initlog
|
||||
echo "" >> /root/initlog
|
||||
cat /etc/icwmpd/.icwmpd_backup_session.xml >> /root/initlog
|
||||
echo "" >> /root/initlog
|
||||
else
|
||||
echo "$(date +"%T %D") Start: /etc/icwmpd/.icwmpd_backup_session.xml doesn't exist" >> /root/initlog
|
||||
echo "" >> /root/initlog
|
||||
fi
|
||||
if [ ! -f /tmp/.icwmpd_boot ]; then
|
||||
touch /etc/icwmpd/.icwmpd_boot
|
||||
touch /tmp/.icwmpd_boot
|
||||
|
|
@ -171,12 +225,15 @@ start_service() {
|
|||
|
||||
log "Waiting for usp.raw to be started"
|
||||
ubus wait_for usp.raw
|
||||
|
||||
|
||||
config_load cwmp
|
||||
set_wan_interface
|
||||
wait_for_option43 20
|
||||
get_acs_url
|
||||
|
||||
|
||||
echo "$(date +"%T %D") Start: copy icwmpd files to /var/state ..." >> /root/initlog
|
||||
echo "" >> /root/initlog
|
||||
copy_cwmp_etc_files_to_varstate
|
||||
procd_open_instance icwmp
|
||||
procd_set_param command "$PROG"
|
||||
if [ "$1" = "GetRPCMethods" ];then
|
||||
|
|
@ -192,6 +249,25 @@ start_service() {
|
|||
fi
|
||||
}
|
||||
|
||||
stop_service()
|
||||
{
|
||||
echo "$(date +"%T %D") Stop service" >> /root/initlog
|
||||
echo "****************************" >> /root/initlog
|
||||
echo "$(date +"%T %D") Stop: Actual cwmp rc.d files" >> /root/initlog
|
||||
echo `ls /etc/rc.d/ | grep cwmp` >> /root/initlog
|
||||
if [ -f /var/state/icwmpd/.icwmpd_backup_session.xml ]
|
||||
then
|
||||
echo "$(date +"%T %D") Stop: Backup file content: " >> /root/initlog
|
||||
echo "" >> /root/initlog
|
||||
cat /var/state/icwmpd/.icwmpd_backup_session.xml >> /root/initlog
|
||||
echo "" >> /root/initlog
|
||||
else
|
||||
echo "$(date +"%T %D") Stop: /var/state/icwmpd/.icwmpd_backup_session.xml doesn't exist" >> /root/initlog
|
||||
echo "" >> /root/initlog
|
||||
fi
|
||||
copy_cwmp_varstate_files_to_etc
|
||||
}
|
||||
|
||||
reload_service() {
|
||||
stop
|
||||
start
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
/etc/icwmpd/.icwmpd_backup_session.xml
|
||||
/var/state/icwmpd/.icwmpd_backup_session.xml
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue