- #!/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_dns="$(uci_get adblock global adb_dns)"
- fi
- adb_ver="${1}"
- adb_ubus="$(command -v ubus)"
- adb_logger="$(command -v logger)"
-
- f_log()
- {
- local class="${1}" log_msg="${2}"
-
- if [ -x "${adb_logger}" ]
- then
- "${adb_logger}" -p "${class}" -t "adblock-${adb_ver}[${$}]" "${log_msg}"
- else
- printf "%s %s %s\\n" "${class}" "adblock-${adb_ver}[${$}]" "${log_msg}"
- fi
- }
-
- if [ -x "${adb_ubus}" ] && [ -n "${adb_dns}" ]
- then
- f_log "info" "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
- f_log "err" "can't start ubus/adblock service"
- fi
|