From 8c5b9a0802dec0876488779f0836c5b4698388cc Mon Sep 17 00:00:00 2001 From: Dirk Brenken Date: Wed, 22 Feb 2017 13:38:02 +0100 Subject: [PATCH] adblock: update 2.3.2 * optimize memory consumption & enable overall sort only on devices with > 64MB RAM, this prevents sort related kernel dumps Signed-off-by: Dirk Brenken --- net/adblock/Makefile | 2 +- net/adblock/files/adblock.sh | 39 +++++++++++++++++++----------------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/net/adblock/Makefile b/net/adblock/Makefile index a10fcd4c8..dbed4f629 100644 --- a/net/adblock/Makefile +++ b/net/adblock/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=adblock -PKG_VERSION:=2.3.1 +PKG_VERSION:=2.3.2 PKG_RELEASE:=1 PKG_LICENSE:=GPL-3.0+ PKG_MAINTAINER:=Dirk Brenken diff --git a/net/adblock/files/adblock.sh b/net/adblock/files/adblock.sh index c25541979..8dc464b62 100755 --- a/net/adblock/files/adblock.sh +++ b/net/adblock/files/adblock.sh @@ -10,7 +10,7 @@ # LC_ALL=C PATH="/usr/sbin:/usr/bin:/sbin:/bin" -adb_ver="2.3.1" +adb_ver="2.3.2" adb_enabled=1 adb_debug=0 adb_backup=0 @@ -169,9 +169,12 @@ f_envcheck() # f_rmtemp() { - rm -f "${adb_tmpload}" - rm -f "${adb_tmpfile}" - rm -rf "${adb_tmpdir}" + if [ -d "${adb_tmpdir}" ] + then + rm -f "${adb_tmpload}" + rm -f "${adb_tmpfile}" + rm -rf "${adb_tmpdir}" + fi } # f_rmdns: remove dns related files & directories @@ -331,9 +334,10 @@ f_log() # f_main() { - local enabled url cnt sum_cnt=0 - local src_name src_rset shalla_file shalla_archive list active_lists + local enabled url cnt sum_cnt=0 mem_total=0 + local src_name src_rset shalla_archive list active_lists local sysver="$(ubus -S call system board | jsonfilter -e '@.release.description')" + mem_total="$(awk '$1 ~ /^MemTotal/ {printf $2}' "/proc/meminfo" 2>/dev/null)" f_log "info " "start adblock processing ..." for src_name in ${adb_sources} @@ -356,7 +360,7 @@ f_main() # download block list # - f_log "debug" "name: ${src_name}, enabled: ${enabled}, backup: ${adb_backup}, dns: ${adb_dns}, fetch: ${adb_fetch}" + f_log "debug" "name: ${src_name}, enabled: ${enabled}, backup: ${adb_backup}, dns: ${adb_dns}, fetch: ${adb_fetch}, memory: ${mem_total}" if [ "${src_name}" = "blacklist" ] then cat "${url}" 2>/dev/null > "${adb_tmpload}" @@ -364,23 +368,19 @@ f_main() elif [ "${src_name}" = "shalla" ] then shalla_archive="${adb_tmpdir}/shallalist.tar.gz" - shalla_file="${adb_tmpdir}/shallalist.txt" "${adb_fetch}" ${adb_fetchparm} "${shalla_archive}" "${url}" 2>/dev/null adb_rc=${?} if [ ${adb_rc} -eq 0 ] then - > "${shalla_file}" for category in ${adb_src_cat_shalla} do - tar -xOzf "${shalla_archive}" BL/${category}/domains >> "${shalla_file}" + tar -xOzf "${shalla_archive}" BL/${category}/domains >> "${adb_tmpload}" adb_rc=${?} if [ ${adb_rc} -ne 0 ] then break fi done - cat "${shalla_file}" 2>/dev/null > "${adb_tmpload}" - rm -f "${shalla_file}" fi rm -f "${shalla_archive}" rm -rf "${adb_tmpdir}/BL" @@ -424,16 +424,19 @@ f_main() fi done - # sort/unique overall + # overall sort # for src_name in $(ls -dASr "${adb_tmpdir}/${adb_dnsprefix}"* 2>/dev/null) do - if [ -s "${adb_tmpdir}/blocklist.overall" ] + if [ ${mem_total} -ge 64000 ] then - sort "${adb_tmpdir}/blocklist.overall" "${adb_tmpdir}/blocklist.overall" "${src_name}" | uniq -u > "${adb_tmpdir}/tmp.blocklist" - cat "${adb_tmpdir}/tmp.blocklist" > "${src_name}" + if [ -s "${adb_tmpdir}/blocklist.overall" ] + then + sort "${adb_tmpdir}/blocklist.overall" "${adb_tmpdir}/blocklist.overall" "${src_name}" | uniq -u > "${adb_tmpdir}/tmp.blocklist" + mv -f "${adb_tmpdir}/tmp.blocklist" "${src_name}" + fi + cat "${src_name}" >> "${adb_tmpdir}/blocklist.overall" fi - cat "${src_name}" >> "${adb_tmpdir}/blocklist.overall" cnt="$(wc -l < "${src_name}")" sum_cnt=$((sum_cnt + cnt)) list="${src_name/*./}" @@ -449,6 +452,7 @@ f_main() # mv -f "${adb_tmpdir}/${adb_dnsprefix}"* "${adb_dnsdir}" 2>/dev/null chown "${adb_dns}":"${adb_dns}" "${adb_dnsdir}/${adb_dnsprefix}"* 2>/dev/null + f_rmtemp f_dnsrestart if [ "${adb_dnsup}" = "true" ] then @@ -461,7 +465,6 @@ f_main() \"dns_backend\":\"${adb_dns}\", \"last_rundate\":\"$(/bin/date "+%d.%m.%Y %H:%M:%S")\", \"system\":\"${sysver}\"}}}}" - f_rmtemp return 0 fi f_log "error" "dns backend restart with active block lists failed (${sysver})"