From daf7e30ed10c4416875d6b7d846832555268841a Mon Sep 17 00:00:00 2001 From: itdoginfo Date: Mon, 17 Feb 2025 15:22:55 +0300 Subject: [PATCH] dnsmasq add 8.8.8.8. Validate domain_list --- README.md | 4 +++- podkop/files/etc/init.d/podkop | 29 ++++++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8b9ee84..e58231f 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,8 @@ sh <(wget -O - https://raw.githubusercontent.com/itdoginfo/domain-routing-openwr # Установка Podkop Пакет работает на всех архитектурах. -Тестировался на OpenWrt 23.05 и OpenWrt 24.10. +Тестировался на **ванильной** OpenWrt 23.05 и OpenWrt 24.10. +На FriendlyWrt 23.05 присуствуют зависимости от iptables, которые ломают tproxy. Если у вас появляется warning про это в логах, следуйте инструкции по приведённой там ссылке. Поддержки APK на данный момент нет. APK будет сделан после того как разгребу основное. @@ -151,6 +152,7 @@ Luci: Services/podkop - [ ] Сделать галку запрещающую подкопу редачить dhcp. Допилить в исключение вместе с пустыми полями proxy и vpn - [ ] Валидации предустановленных значений. Если прописаны другие, то вывод в лог о неизвестной переменной и продолжение работы - [ ] Добавление в список доменов домены первого уровня (LuCI) +- [ ] Проверка, что версия в makefile совпадает с тегом Приоритет 2 - [x] Списки доменов и подсетей с роутера diff --git a/podkop/files/etc/init.d/podkop b/podkop/files/etc/init.d/podkop index b4c9350..d75c06d 100755 --- a/podkop/files/etc/init.d/podkop +++ b/podkop/files/etc/init.d/podkop @@ -35,6 +35,7 @@ SUBNETS_TELERAM="${GITHUB_RAW_URL}/Subnets/IPv4/telegram.lst" SING_BOX_CONFIG="/etc/sing-box/config.json" CACHE_FILE_PATH="/tmp/cache.db" FAKEIP="198.18.0.0/15" +VALID_SERVICES="russia_inside russia_outside ukraine_inside geoblock block porn news anime youtube discord meta twitter hdrezka tiktok telegram" start_service() { log "Start podkop" @@ -48,8 +49,7 @@ start_service() { fi if opkg list-installed | grep -qE "iptables|kmod-iptab"; then - echo "Found incompatible iptables packages. If you're using FriendlyWrt: https://t.me/itdogchat/44512/181082" - exit 1 + printf "\033[31;1mFound incompatible iptables packages. If you're using FriendlyWrt: https://t.me/itdogchat/44512/181082\033[0m\n" fi if ! ip addr | grep -q "br-lan"; then @@ -59,6 +59,8 @@ start_service() { migration + config_foreach process_validate_service + procd_open_instance procd_set_param command /bin/sh -c "/etc/init.d/podkop main &" procd_set_param stdout 1 @@ -202,7 +204,7 @@ main() { fi } -# Migrations funcs +# Migrations and validation funcs migration() { # list migrate local CONFIG="/etc/config/podkop" @@ -247,6 +249,26 @@ migration() { fi } +validate_service() { + local domain="$1" + + for valid_service in $VALID_SERVICES; do + if [ "$domain" = "$valid_service" ]; then + return 0 + fi + done + + log "Invalid service in domain_list: $domain. Exiting. Check config and LuCI cache" + exit 1 +} + +process_validate_service() { + config_get_bool domain_list_enabled "$section" "domain_list_enabled" "0" + if [ "$domain_list_enabled" -eq 1 ]; then + config_list_foreach "$section" domain_list validate_service + fi +} + # Main funcs route_table_rule_mark() { @@ -308,6 +330,7 @@ dnsmasq_rm() { uci set dhcp.@dnsmasq[0].filter_aaaa="0" uci set dhcp.@dnsmasq[0].cachesize="1000" uci -q delete dhcp.@dnsmasq[0].server + uci add_list dhcp.@dnsmasq[0].server="8.8.8.8" uci commit dhcp /etc/init.d/dnsmasq restart