diff --git a/.github/workflows/prcheck.sh b/.github/workflows/prcheck.sh new file mode 100755 index 00000000..0081a076 --- /dev/null +++ b/.github/workflows/prcheck.sh @@ -0,0 +1,60 @@ +#! /bin/sh + +curl -qL https://github.com/jedisct1/dnscrypt-proxy/releases/download/2.0.45/dnscrypt-proxy-linux_x86_64-2.0.45.tar.gz | tar xzvf - +cd linux-x86_64 || exit 1 + +NEW_ENTRIES="new-entries.txt" +git fetch --all +git diff origin/master | grep -F '+sdns://' | cut -d'+' -f2- | sort >"$NEW_ENTRIES" +if [ ! -s "$NEW_ENTRIES" ]; then + echo "No new entries found" + exit 0 +fi + +DUPLICATES="duplicates.txt" +uniq -d "$NEW_ENTRIES" >"$DUPLICATES" +if [ -s "$DUPLICATES" ]; then + echo "** DUPLICATES FOUND **" + cat "$DUPLICATES" + exit 1 +fi + +exit_code=0 + +CONFIG="test-dnscrypt-proxy.toml" +PIDFILE="dnscrypt-proxy.pid" +LOGFILE="dnscrypt-proxy.log" +while read -r stamp; do + echo + echo "* Checking resolver with stamp:" + echo "$stamp" + echo + cp example-dnscrypt-proxy.toml "$CONFIG" + sed -i -e 's/listen_addresses.*/listen_addresses = ["127.0.0.1:5300"]/' "$CONFIG" + sed -i -e 's/# *server_names.*/server_names = ["test"]/' "$CONFIG" + echo '[static."test"]' >>"$CONFIG" + echo "stamp = '${stamp}'" >>"$CONFIG" + ./dnscrypt-proxy -config "$CONFIG" -pidfile "$PIDFILE" -logfile "$LOGFILE" -loglevel 1 & + sleep 5 + if grep -q 'ERROR.*\[.*:.*]:' "$LOGFILE"; then + echo "(skipping due to IPv6 not being supported by GitHub Actions)" + elif ! ./dnscrypt-proxy -config "$CONFIG" -resolve example.com; then + echo "** UNABLE TO GET A RESPONSE FROM THE RESOLVER **" + echo "Bogus stamp: ${stamp}" + exit_code=1 + fi + kill $(cat "$PIDFILE") + cat "$LOGFILE" + if grep -v 'ERROR.*\[.*:.*]:' "$LOGFILE" | grep -q 'ERROR|CRITICAL|FATAL'; then + echo "** ERRORS FOUND **" + exit_code=1 + fi + echo "Done!" + echo +done <"$NEW_ENTRIES" + +if [ $exit_code != 0 ]; then + echo "** ONE OR MORE CHECKS FAILED **" +fi + +exit $exit_code diff --git a/.github/workflows/prcheck.yml b/.github/workflows/prcheck.yml new file mode 100644 index 00000000..8d4e6906 --- /dev/null +++ b/.github/workflows/prcheck.yml @@ -0,0 +1,17 @@ +name: prcheck + +on: + push: + branches: [master, next, ci] + pull_request: + branches: [master, next, ci] + workflow_dispatch: + +jobs: + prcheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: new entries + run: .github/workflows/prcheck.sh diff --git a/v3/public-resolvers.md b/v3/public-resolvers.md index 3d702618..cf0a88df 100644 --- a/v3/public-resolvers.md +++ b/v3/public-resolvers.md @@ -30,8 +30,9 @@ company providing Internet connectivity and VoIP in the UK. https://www.aa.net.uk/legal/dohdot-disclaimer/ -sdns://AgcAAAAAAAAADTIxNy4xNjkuMjAuMjOgPhoaD2xT8-l6SS1XCEtbmAcFnuBXqxUFh2_YP9o9uDggMob_ZaZfrzIIXuoTiMNzi6fjeHPJBszjxKKLTMKliYgNZG5zLmFhLm5ldC51awovZG5zLXF1ZXJ5 +sdns://AgcAAAAAAAAADTIxNy4xNjkuMjAuMjOgPhoaD2xT8-l6SS1XCEtbmAcFnuBXqxUFh2_YP9o9uDggMob_ZaZfrzIIXuoTiMNzi6fjeHPJBszjxKKLTMKliYgNZG5zLmFhLm5ldC51awovZG5zLXd1ZXJ5 +sdns://AgcAAAAAAAAADTIxNy4xNjkuMjAuMjOgPhoaD2xT8-l6SS1XCEtbmAcFnuBXqxUFh2_YP9o9uDggMob_ZaZfrzIIXuoTiMNzi6fjeHPJBszjxKKLTMKliYgNZG5zLmFhLm5ldC51awovZG5zLXF1ZXJ5 ## aaflalo-me-gcp @@ -69,6 +70,8 @@ Public non-censoring, non-logging, DNSSEC-capable, DNSCrypt-enabled DNS resolver sdns://AQcAAAAAAAAAFlsyMDAxOmJjODoxODI0OjczODo6MV0gAyfzz5J-mV9G-yOB4Hwcdk7yX12EQs5Iva7kV3oGtlEgMi5kbnNjcnlwdC1jZXJ0LmFjc2Fjc2FyLWFtcy5jb20 +sdns://AQcAAAAAAAAAFlsyMDAxOmJjODoxODI0OjczODo6MV0gAyfzz5J-mV9G-yOB4Hwcdk7yX12EQs5Iva7kV3oGtlEgMi5kbnNjcnlwdC1jZXJ0LmFjc2Fjc2FyLWFtcy5jb20 + ## adfree.usableprivacy.net