diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/common.inc b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/common.inc index 61c56bf..e577f0b 100644 --- a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/common.inc +++ b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/common.inc @@ -15,6 +15,8 @@ FAMILYSHIELD_FILE="${CONTROL_DIR}/familyshield" INSECURE_OPENDNS_FILE="${CONTROL_DIR}/insecure-opendns" FALLBACK_FILE="${CONTROL_DIR}/fallback" HANDLERS_LOCK_FILE="/var/run/dnscrypt-handlers.lock" +DOMAINS_EXCEPTIONS_FILE="${CONTROL_DIR}/domains-exceptions" +DNSCRYPT_PROXY_PLUGINS_FILE="${CONTROL_DIR}/plugins" INTERFACE_UNBOUND="127.0.0.53" INTERFACE_UNBOUND_MASK="24" diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/exceptions-add.sh b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/exceptions-add.sh index e61344f..8bda4af 100755 --- a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/exceptions-add.sh +++ b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/exceptions-add.sh @@ -4,6 +4,9 @@ RESOLVER_DIR='/etc/resolver' . ./common.inc +[ -r "$DOMAINS_EXCEPTIONS_FILE" ] && + DOMAINS_EXCEPTIONS="$(cat "$DOMAINS_EXCEPTIONS_FILE") $DOMAINS_EXCEPTIONS" + get_gw() { route -n get default | while read line; do case "$line" in diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/exceptions-remove.sh b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/exceptions-remove.sh index 6471b53..59ecee2 100755 --- a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/exceptions-remove.sh +++ b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/exceptions-remove.sh @@ -4,6 +4,9 @@ RESOLVER_DIR='/etc/resolver' . ./common.inc +[ -r "$DOMAINS_EXCEPTIONS_FILE" ] && + DOMAINS_EXCEPTIONS="$(cat "$DOMAINS_EXCEPTIONS_FILE") $DOMAINS_EXCEPTIONS" + for domain in $DOMAINS_EXCEPTIONS; do rm -f "${RESOLVER_DIR}/${domain}" done diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/start-dnscrypt-proxy.sh b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/start-dnscrypt-proxy.sh index c808afd..3d08bf0 100755 --- a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/start-dnscrypt-proxy.sh +++ b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/start-dnscrypt-proxy.sh @@ -19,6 +19,10 @@ mkdir -p -- "$DESCRIPTIONS_DIR" || exit 1 PID_DIR="${PROBES_BASE_DIR}/pids" || exit 1 mkdir -p -- "$PID_DIR" || exit 1 +DNSCRYPT_PROXY_PLUGINS="" +[ -r "$DNSCRYPT_PROXY_PLUGINS_FILE" ] && + DNSCRYPT_PROXY_PLUGINS="$(cat "$DNSCRYPT_PROXY_PLUGINS_FILE")" + try_resolver() { local priority="$1" shift @@ -105,9 +109,16 @@ for pid in $wait_pids; do done [ x"$best_file" = "x" ] && exit 1 + +plugins_args='' +for plugin in $DNSCRYPT_PROXY_PLUGINS; do + plugin_args="${plugin_args} --plugin=${plugin}" +done + best_args=$(cat "${RES_DIR}/${best_file}") dnscrypt-proxy $best_args --local-address="${INTERFACE_PROXY}" \ - --pidfile="$PROXY_PID_FILE" --user=daemon --daemonize + --pidfile="$PROXY_PID_FILE" --user=daemon --daemonize $plugin_args + if [ $? != 0 ]; then [ -r "$PROXY_PID_FILE" ] && kill $(cat -- "$PROXY_PID_FILE") sleep 1