From bc6490b56e9cb4118449a5d905e9d67f787a20e1 Mon Sep 17 00:00:00 2001 From: Ivan K Date: Sun, 30 Mar 2025 17:04:30 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=90=9B=20fix(doh):=20Improve=20DoH=20?= =?UTF-8?q?server=20compatibility=20detection=20for=20quad9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- podkop/files/usr/bin/podkop | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/podkop/files/usr/bin/podkop b/podkop/files/usr/bin/podkop index 6ef73fa..04499f8 100755 --- a/podkop/files/usr/bin/podkop +++ b/podkop/files/usr/bin/podkop @@ -2038,23 +2038,25 @@ check_dns_available() { fi if [ "$dns_type" = "doh" ]; then - # Different DoH providers use different endpoints and formats local result="" - # Try common DoH endpoints and check for valid responses - # First try /dns-query endpoint (Cloudflare, AdGuard DNS, etc.) - result=$(curl --connect-timeout 5 -s -H "accept: application/dns-json" "https://$dns_server/dns-query?name=itdog.info&type=A") - if [ $? -eq 0 ] && echo "$result" | grep -q "data"; then - is_available=1 - status="available" + if echo "$dns_server" | grep -q "quad9.net" || \ + echo "$dns_server" | grep -qE "^9\.9\.9\.9$|^149\.112\.112\.112$|^2620:fe::fe$|^2620:fe::9$"; then + result=$(curl --connect-timeout 5 -s -H "accept: application/dns-json" "https://$dns_server:5053/dns-query?name=itdog.info&type=A") else - # If that fails, try /resolve endpoint (Google DNS) - result=$(curl --connect-timeout 5 -s -H "accept: application/dns-json" "https://$dns_server/resolve?name=itdog.info&type=A") + result=$(curl --connect-timeout 5 -s -H "accept: application/dns-json" "https://$dns_server/dns-query?name=itdog.info&type=A") if [ $? -eq 0 ] && echo "$result" | grep -q "data"; then is_available=1 status="available" + else + result=$(curl --connect-timeout 5 -s -H "accept: application/dns-json" "https://$dns_server/resolve?name=itdog.info&type=A") fi fi + + if [ $? -eq 0 ] && echo "$result" | grep -q "data"; then + is_available=1 + status="available" + fi elif [ "$dns_type" = "dot" ]; then (nc "$dns_server" 853 /dev/null 2>&1) & pid=$! sleep 2 From c2357337fce2debfbd5fb1a06585a16ac2f28770 Mon Sep 17 00:00:00 2001 From: Ivan K Date: Sun, 30 Mar 2025 17:20:06 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=90=9B=20fix(dns):=20improve=20DoH=20?= =?UTF-8?q?server=20compatibility=20and=20error=20handling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- podkop/files/usr/bin/podkop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/podkop/files/usr/bin/podkop b/podkop/files/usr/bin/podkop index 04499f8..e733920 100755 --- a/podkop/files/usr/bin/podkop +++ b/podkop/files/usr/bin/podkop @@ -2041,7 +2041,7 @@ check_dns_available() { local result="" if echo "$dns_server" | grep -q "quad9.net" || \ - echo "$dns_server" | grep -qE "^9\.9\.9\.9$|^149\.112\.112\.112$|^2620:fe::fe$|^2620:fe::9$"; then + echo "$dns_server" | grep -qE "^9\.9\.9\.(9|10|11)$|^149\.112\.112\.(112|10|11)$|^2620:fe::(fe|9|10|11)$|^2620:fe::fe:(10|11)$"; then result=$(curl --connect-timeout 5 -s -H "accept: application/dns-json" "https://$dns_server:5053/dns-query?name=itdog.info&type=A") else result=$(curl --connect-timeout 5 -s -H "accept: application/dns-json" "https://$dns_server/dns-query?name=itdog.info&type=A")