diff --git a/README.md b/README.md index f916c6f..371e452 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,7 @@ Wiki Низкий приоритет - [ ] Переменная, раз во сколько часов обновлять списки - [ ] Галочка, которая режет доступ к doh серверам +- [ ] Свой конфиг sing-box Рефактор - [ ] Handle для sing-box diff --git a/podkop/Makefile b/podkop/Makefile index ca956ba..291d5b4 100644 --- a/podkop/Makefile +++ b/podkop/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=podkop -PKG_VERSION:=0.2.1 +PKG_VERSION:=0.2.2 PKG_RELEASE:=1 PKG_MAINTAINER:=ITDog @@ -33,6 +33,8 @@ define Package/podkop/prerm grep -q "105 podkop" /etc/iproute2/rt_tables && sed -i "/105 podkop/d" /etc/iproute2/rt_tables +rm -f /etc/hotplug.d/iface/50-podkop + exit 0 endef diff --git a/podkop/files/etc/hotplug.d/iface/50-podkop b/podkop/files/etc/hotplug.d/iface/50-podkop index 9dd6459..f8bfd53 100755 --- a/podkop/files/etc/hotplug.d/iface/50-podkop +++ b/podkop/files/etc/hotplug.d/iface/50-podkop @@ -1,3 +1,28 @@ #!/bin/sh -/etc/init.d/podkop add_route_interface \ No newline at end of file +. /lib/functions.sh +config_load "/etc/config/podkop" +. /etc/init.d/podkop + +config_get "interface" "main" "interface" "0" +config_get "mode" "main" "mode" "0" +if [ "$mode" = "vpn" ] && [ -n "$interface" ]; then + add_route_interface "$interface" "podkop" +fi + +if [ "$mode" = "proxy" ]; then + echo "Add route for main tproxy" + add_route_tproxy podkop +fi + +config_get second_enable "second" "second_enable" "0" +config_get interface "second" "interface" "0" +config_get "mode" "second" "mode" "0" +if [ "$second_enable" -eq "1" ] && [ "$mode" = "vpn" ] && [ -n "$interface" ]; then + add_route_interface "$interface" "podkop2" +fi + +if [ "$second_enable" -eq "1" ] && [ "$mode" = "proxy" ]; then + echo "Add route for second tproxy" + add_route_tproxy podkop2 +fi \ No newline at end of file diff --git a/podkop/files/etc/init.d/podkop b/podkop/files/etc/init.d/podkop index 6cf6f0d..4b60e6a 100755 --- a/podkop/files/etc/init.d/podkop +++ b/podkop/files/etc/init.d/podkop @@ -18,7 +18,6 @@ start_service() { log "Start podkop" dnsmasqfull - ucitrack routing_table_create add_mark @@ -255,6 +254,7 @@ log() { local RESET="\033[0m" echo -e "${CYAN}[$timestamp]${RESET} ${GREEN}$message${RESET}" + logger -t "podkop" "$timestamp $message" } add_cron_job() { @@ -374,14 +374,6 @@ dnsmasqfull() { fi } -ucitrack() { - if grep -q "podkop" /etc/config/ucitrack; then - log "ucitrack config ok" - else - log "ucitrack config not found" - fi -} - routing_table_create() { grep -q "105 podkop" /etc/iproute2/rt_tables || echo '105 podkop' >>/etc/iproute2/rt_tables config_get_bool second_enable "second" "second_enable" "0" @@ -444,19 +436,18 @@ add_set() { add_route_interface() { local interface="$1" local table="$2" - local retry_count_interface=0 local retry_count_route=0 - local max_retries=20 + local max_retries=10 - while ! ip link show "$interface" >/dev/null 2>&1; do - if (( attempt == max_retries )); then - log "Interface "$interface" undetected after $retry_count_interface attempts. Exit" + if ! ip link show "$interface" >/dev/null 2>&1; then + log "Interface "$interface" undetected, wait 10 sec..." + sleep 10 + + if ! ip link show "$interface" >/dev/null 2>&1; then + log "Interface "$interface" undetected. exit" exit 1 fi - log "Attempt $retry_count_interface: Interface "$interface" not found, retrying in 3 seconds..." - retry_count_interface=$(( retry_count_interface + 1 )) - sleep 3 - done + fi if ! ip link show "$interface" >/dev/null 2>&1; then log "Interface "$interface" does not exist, not possible to create a route"