summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk Brenken2016-10-13 12:59:29 +0000
committerHannu Nyman2016-10-13 12:59:29 +0000
commitd3468397509bc98586712b601502e9ef84e061c6 (patch)
tree8c79e5b29991251ca9037743c3419da39705507e
parent9de3069a949d303dcafd52c6df11baa7c673b57f (diff)
downloadpackages-d3468397509bc98586712b601502e9ef84e061c6.tar.gz
adblock: update to 1.5.1
Apply adblock updates 1.4.10-1.5.1 Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi> Original commit messages: adblock: update 1.4.10 - add 'enabled' check to iface hotplug event handler - decrease startup priority from 99 to 90 - fix tab indentation in config adblock: update 1.5.0 * add new 'envchk'function to check adblock environment only, i.e. check volatile firewall rules or uhttpd instances without list updates * add new optional parm 'adb_loglevel', set it to "0" to mute output (print only errors) * set hotplug priority to '90' as well (missed in the last commit) * documentation update * cosmetics adblock: bugfix 1.5.1 * fix uhttpd detection in tcp 4+6 configurations
-rw-r--r--net/adblock/Makefile6
-rw-r--r--net/adblock/files/README.md5
-rw-r--r--net/adblock/files/adblock-helper.sh40
-rwxr-xr-xnet/adblock/files/adblock-update.sh3
-rw-r--r--net/adblock/files/adblock.conf8
-rw-r--r--net/adblock/files/adblock.hotplug3
-rwxr-xr-xnet/adblock/files/adblock.init16
7 files changed, 49 insertions, 32 deletions
diff --git a/net/adblock/Makefile b/net/adblock/Makefile
index d79bf5199d..f11d6850f5 100644
--- a/net/adblock/Makefile
+++ b/net/adblock/Makefile
@@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=adblock
-PKG_VERSION:=1.4.9
+PKG_VERSION:=1.5.1
PKG_RELEASE:=1
PKG_LICENSE:=GPL-3.0+
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
@@ -23,7 +23,7 @@ endef
define Package/$(PKG_NAME)/description
Powerful adblock script to block ad/abuse domains.
-The script supports 21 domain blacklist sites plus manual black- and whitelist overrides.
+The script supports many domain blacklist sites plus manual black- and whitelist overrides.
Please see https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md for further information.
endef
@@ -49,7 +49,7 @@ define Package/$(PKG_NAME)/install
$(INSTALL_DATA) ./files/adblock-helper.sh $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
- $(INSTALL_BIN) ./files/adblock.hotplug $(1)/etc/hotplug.d/iface/99-adblock
+ $(INSTALL_BIN) ./files/adblock.hotplug $(1)/etc/hotplug.d/iface/90-adblock
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/adblock.init $(1)/etc/init.d/adblock
diff --git a/net/adblock/files/README.md b/net/adblock/files/README.md
index e3b1972697..043b99adde 100644
--- a/net/adblock/files/README.md
+++ b/net/adblock/files/README.md
@@ -62,9 +62,10 @@ A lot of people already use adblocker plugins within their desktop browsers, but
* status & error logging to stdout and syslog
* use two dynamic uhttpd instances as adblock pixel server, separated for ads delivered on port 80 and on port 443
* use dynamic iptables chains/rulesets for adblock related redirects/rejects
-* init system support (start/stop/restart/reload/toggle/stats/cfgup)
+* init system support (start/stop/restart/reload/toggle/stats/cfgup/envchk/query)
* hotplug support, the adblock start will be triggered by wan 'ifup' event, this can be restricted to a certain wan interface or disabled at all (see config options below)
* toggle to quickly switch adblock 'on' or 'off'
+* envchk function to check the volatile adblock environment only (without list updates)
* query function to quickly identify blocked (sub-)domains, i.e. for whitelisting
* optional: automatic adblock list backup/restore, backups will be (de-)compressed on the fly (disabled by default)
* optional: add new adblock sources via uci config (see example below)
@@ -113,6 +114,7 @@ A lot of people already use adblocker plugins within their desktop browsers, but
* **adblock query `<DOMAIN>`:** to query the active blocklists for a specific domain, please run _/etc/init.d/adblock query `<DOMAIN>`_ (see example below)
* **configuration update:** to update an outdated adblock config file with the current default version, please run _/etc/init.d/adblock cfgup_, make your individual changes and start the adblock service again
* **debugging:** for script debugging please set the 'adb\_debug' variable in the header of _/etc/init.d/adblock_ to '1'
+* **mute output** to mute the normal adblock output and print only warn/error messages, please set 'adb\_loglevel to '0'
* **disable active dns probing in windows:** to prevent a possible yellow exclamation mark on your internet connection icon (which wrongly means connected, but no internet), please change the following registry key/value from "1" to "0" _HKLM\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet\EnableActiveProbing_
## Further adblock config options
@@ -128,6 +130,7 @@ A lot of people already use adblocker plugins within their desktop browsers, but
* adb\_fetchttl => set the timeout for list downloads (default: '5' seconds)
* adb\_restricted => disable updates of the adblock config file (no flash writes) during runtime (default: '0', disabled)
* adb\_hotplugif => restrict hotplug support to a certain wan interface or disable it at all (default: '', disabled)
+ * adb\_loglevel => set it to '0' to mute normal adblock output and print only error messages (default: '1', normal output)
## Examples
diff --git a/net/adblock/files/adblock-helper.sh b/net/adblock/files/adblock-helper.sh
index 9fbf6676a7..4cce637a31 100644
--- a/net/adblock/files/adblock-helper.sh
+++ b/net/adblock/files/adblock-helper.sh
@@ -6,6 +6,8 @@
#
LC_ALL=C
PATH="/usr/sbin:/usr/bin:/sbin:/bin"
+adb_scriptver="1.5.1"
+adb_mincfgver="2.5"
adb_hotplugif=""
adb_lanif="lan"
adb_nullport="65534"
@@ -22,6 +24,7 @@ adb_minspace=12000
adb_forcedns=1
adb_fetchttl=5
adb_restricted=0
+adb_loglevel=1
adb_uci="$(which uci)"
# f_envload: load adblock environment
@@ -122,7 +125,7 @@ f_envcheck()
if [ -z "${adb_enabled}" ] || [ -z "${adb_cfgver}" ] || [ "${adb_cfgver%%.*}" != "${adb_mincfgver%%.*}" ]
then
rc=-1
- f_log "outdated adblock config (${adb_mincfgver} vs. ${adb_cfgver}), please run '/etc/init.d/adblock cfgup' to update your configuration"
+ f_log "outdated adblock config (${adb_cfgver} vs. ${adb_mincfgver}), please run '/etc/init.d/adblock cfgup' to update your configuration"
f_exit
elif [ "${adb_cfgver#*.}" != "${adb_mincfgver#*.}" ]
then
@@ -131,7 +134,7 @@ f_envcheck()
if [ "${adb_enabled}" != "1" ]
then
rc=-10
- f_log "adblock is currently disabled, please set adblock.global.adb_enabled=1' to use this service"
+ f_log "adblock is currently disabled, please set adb_enabled to '1' to use this service"
f_exit
fi
@@ -408,8 +411,8 @@ f_envcheck()
#
if [ -n "${adb_wanif4}" ] && [ -n "${adb_wanif6}" ]
then
- f_uhttpd "adbIPv4+6_80" "1" "-p ${adb_ipv4}:${adb_nullport} -p [${adb_ipv6}]:${adb_nullport}"
- f_uhttpd "adbIPv4+6_443" "0" "-p ${adb_ipv4}:${adb_nullportssl} -p [${adb_ipv6}]:${adb_nullportssl}"
+ f_uhttpd "adbIPv46_80" "1" "-p ${adb_ipv4}:${adb_nullport} -p [${adb_ipv6}]:${adb_nullport}"
+ f_uhttpd "adbIPv46_443" "0" "-p ${adb_ipv4}:${adb_nullportssl} -p [${adb_ipv6}]:${adb_nullportssl}"
elif [ -n "${adb_wanif4}" ]
then
f_uhttpd "adbIPv4_80" "1" "-p ${adb_ipv4}:${adb_nullport}"
@@ -633,12 +636,10 @@ f_rmfirewall()
rm_fw="$(iptables -w -t nat -vnL | grep -Fo "adb-")"
if [ -n "${rm_fw}" ]
then
- iptables-save -t nat | grep -Fv -- "adb-" | iptables-restore
- iptables-save -t filter | grep -Fv -- "adb-" | iptables-restore
+ iptables-save | grep -Fv -- "adb-" | iptables-restore
if [ -n "$(lsmod | grep -Fo "ip6table_nat")" ]
then
- ip6tables-save -t nat | grep -Fv -- "adb-" | ip6tables-restore
- ip6tables-save -t filter | grep -Fv -- "adb-" | ip6tables-restore
+ ip6tables-save | grep -Fv -- "adb-" | ip6tables-restore
fi
fi
}
@@ -651,21 +652,19 @@ f_log()
local log_msg="${1}"
local class="info "
- # check for terminal session
- #
+ if [ $((rc)) -gt 0 ]
+ then
+ class="error"
+ elif [ $((rc)) -lt 0 ]
+ then
+ class="warn "
+ fi
if [ -t 1 ]
then
log_parm="-s"
fi
-
- # log to different output devices and set log class accordingly
- #
- if [ -n "${log_msg}" ]
+ if [ -n "${log_msg}" ] && ([ $((adb_loglevel)) -gt 0 ] || [ "${class}" != "info " ])
then
- if [ $((rc)) -gt 0 ]
- then
- class="error"
- fi
logger ${log_parm} -t "adblock[${adb_pid}] ${class}" "${log_msg}" 2>&1
fi
}
@@ -747,7 +746,10 @@ f_exit()
else
rc=0
fi
- "${adb_uci}" -q commit "adblock"
+ if [ -n "$("${adb_uci}" -q changes adblock)" ]
+ then
+ "${adb_uci}" -q commit "adblock"
+ fi
rm -f "${adb_pidfile}"
exit ${rc}
}
diff --git a/net/adblock/files/adblock-update.sh b/net/adblock/files/adblock-update.sh
index c1e467d7c2..c7df4ddb1c 100755
--- a/net/adblock/files/adblock-update.sh
+++ b/net/adblock/files/adblock-update.sh
@@ -10,9 +10,8 @@
#
adb_pid="${$}"
adb_pidfile="/var/run/adblock.pid"
-adb_scriptver="1.4.9"
-adb_mincfgver="2.5"
adb_scriptdir="${0%/*}"
+
if [ -r "${adb_pidfile}" ]
then
rc=255
diff --git a/net/adblock/files/adblock.conf b/net/adblock/files/adblock.conf
index da58c2e833..cc86b503b0 100644
--- a/net/adblock/files/adblock.conf
+++ b/net/adblock/files/adblock.conf
@@ -91,10 +91,10 @@ config source 'ruadlist'
option adb_src_desc 'focus on russian ads plus generic easylist additions, weekly updates, approx. 2.000 entries'
config source 'securemecca'
- option enabled '0'
- option adb_src 'http://securemecca.com/Downloads/hosts.txt'
- option adb_src_rset '\$0 ~/^127\.0\.0\.1[ \t]+([A-Za-z0-9_-]+\.){1,}[A-Za-z]+/{print tolower(\$2)}'
- option adb_src_desc 'broad blocklist, infrequent updates, approx. 25.000 entries'
+ option enabled '0'
+ option adb_src 'http://securemecca.com/Downloads/hosts.txt'
+ option adb_src_rset '\$0 ~/^127\.0\.0\.1[ \t]+([A-Za-z0-9_-]+\.){1,}[A-Za-z]+/{print tolower(\$2)}'
+ option adb_src_desc 'broad blocklist, infrequent updates, approx. 25.000 entries'
config source 'shalla'
option enabled '0'
diff --git a/net/adblock/files/adblock.hotplug b/net/adblock/files/adblock.hotplug
index 33377b5e6c..ee48bb05c4 100644
--- a/net/adblock/files/adblock.hotplug
+++ b/net/adblock/files/adblock.hotplug
@@ -4,8 +4,9 @@
adb_pid="${$}"
adb_helper="/usr/bin/adblock-helper.sh"
adb_pidfile="/var/run/adblock.pid"
+adb_enabled="$(/etc/init.d/adblock enabled; echo $?)"
-if [ -f "${adb_pidfile}" ] || [ "${ACTION}" != "ifup" ]
+if [ "${adb_enabled}" = "1" ] || [ -f "${adb_pidfile}" ] || [ "${ACTION}" != "ifup" ]
then
exit 0
fi
diff --git a/net/adblock/files/adblock.init b/net/adblock/files/adblock.init
index f7b707a21b..5cd8672111 100755
--- a/net/adblock/files/adblock.init
+++ b/net/adblock/files/adblock.init
@@ -1,11 +1,12 @@
#!/bin/sh /etc/rc.common
#
-START=99
-EXTRA_COMMANDS="toggle stats cfgup query"
+START=90
+EXTRA_COMMANDS="toggle stats cfgup envchk query"
EXTRA_HELP=" toggle Toggle adblock 'on' or 'off'
stats Update adblock statistics
cfgup Update adblock configuration file
+ envchk Check/Set adblock environment
query <DOMAIN> Query active blocklists for specific domain"
adb_debug=0
@@ -159,3 +160,14 @@ query()
fi
return 0
}
+
+envchk()
+{
+ adb_loglevel=0
+ f_envcheck
+ rm -f "${adb_tmpfile}"
+ rm -rf "${adb_tmpdir}"
+ adb_loglevel=1
+ f_log "adblock environment check finished successfully"
+ return 0
+}