prcheck: also check with dnslookup

This commit is contained in:
Frank Denis 2021-02-23 17:12:30 +01:00
parent 79516d609c
commit 842d362afc

View File

@ -1,5 +1,48 @@
#! /bin/sh #! /bin/sh
DNSLOOKUP_VERSION=1.4.5
case "$(uname -ms)" in
Darwin\ x86_64) DNSLOOKUP_ARCH=darwin-amd64 ;;
Linux\ x86_64) DNSLOOKUP_ARCH=linux-amd64 ;;
*)
echo "Unsupported platform" >&2
exit 2
;;
esac
if [ ! -x "${DNSLOOKUP_ARCH}/dnslookup" ]; then
curl -sL https://github.com/ameshkov/dnslookup/releases/download/v${DNSLOOKUP_VERSION}/dnslookup-${DNSLOOKUP_ARCH}-v${DNSLOOKUP_VERSION}.tar.gz | tar xzpf - || exit 1
fi
PATH="$(pwd)/${DNSLOOKUP_ARCH}:$PATH"
try_resolver() {
ERROR_LOG_TMP=".errors"
resolver_name="$1"
stamp="$2"
if dnslookup one.net "$line" >/dev/null 2>&1; then
echo "pass: ${resolver_name}"
elif dnslookup one.net "$line" >/dev/null 2>&1; then
echo "pass: ${resolver_name} (1 retry)"
elif dnslookup one.net "$line" >/dev/null 2>&1; then
echo "pass: ${resolver_name} (2 retries)"
elif dnslookup one.net "$line" >/dev/null 2>"$ERROR_LOG_TMP"; then
echo "pass: ${resolver_name} (3 retries)"
else
if grep -Eq "(no route|unreachable)" "$ERROR_LOG_TMP"; then
echo "ipv6: ${resolver_name}"
else
(
echo "* FAILED: ${resolver_name}"
echo "$stamp"
cat "$ERROR_LOG_TMP"
echo
) >&2
return 1
fi
fi
}
for aux in v3/parental-control.md v3/opennic.md; do for aux in v3/parental-control.md v3/opennic.md; do
grep '^## ' "$aux" | while read -r entry; do grep '^## ' "$aux" | while read -r entry; do
if ! grep -Fq "$entry" v3/public-resolvers.md; then if ! grep -Fq "$entry" v3/public-resolvers.md; then
@ -44,6 +87,9 @@ while read -r stamp; do
echo "* Checking resolver with stamp:" echo "* Checking resolver with stamp:"
echo "$stamp" echo "$stamp"
echo echo
try_resolver "(new entry)" "$stamp"
{ {
echo 'listen_addresses = ["127.0.0.1:5300"]' echo 'listen_addresses = ["127.0.0.1:5300"]'
echo 'server_names = ["test"]' echo 'server_names = ["test"]'