* background service: no longer miss "signal" events for the
dns backend (to trigger adblock)
* fix a dns backend reload issue during switch between
different blocking modes
* domain query: report found domains only once in
"null" blocking mode with IPv4 & IPv6 list entries
Signed-off-by: Dirk Brenken <dev@brenken.org>
(cherry picked from commit 806f5ca9d8
)
27 lines
986 B
Desktop File
Executable file
27 lines
986 B
Desktop File
Executable file
#!/bin/sh
|
|
# ubus monitor to trace dns backend events and conditionally restart adblock
|
|
# written by Dirk Brenken (dev@brenken.org)
|
|
|
|
# This is free software, licensed under the GNU General Public License v3.
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
LC_ALL=C
|
|
PATH="/usr/sbin:/usr/bin:/sbin:/bin"
|
|
|
|
if [ -r "/lib/functions.sh" ]
|
|
then
|
|
. "/lib/functions.sh"
|
|
adb_basever="$(uci_get adblock global adb_basever)"
|
|
adb_dns="$(uci_get adblock global adb_dns)"
|
|
fi
|
|
adb_ubus="$(command -v ubus)"
|
|
|
|
if [ -x "${adb_ubus}" ] && [ -n "${adb_dns}" ]
|
|
then
|
|
logger -p "info" -t "adblock-${adb_basever} [${$}]" "ubus/adblock service started"
|
|
"${adb_ubus}" -S -M r -m invoke monitor | \
|
|
{ grep -qE "\"method\":\"(set|signal)\",\"data\":\{\"name\":\"${adb_dns}\""; [ $? -eq 0 ] && /etc/init.d/adblock start; }
|
|
else
|
|
logger -p "err" -t "adblock-${adb_basever} [${$}]" "can't start ubus/adblock service"
|
|
fi
|