Fix hotplug, added logger, fix add_route

This commit is contained in:
itdoginfo
2024-11-06 13:59:15 +03:00
parent b29a187d46
commit 0ad4133202
4 changed files with 39 additions and 20 deletions

View File

@@ -112,6 +112,7 @@ Wiki
Низкий приоритет
- [ ] Переменная, раз во сколько часов обновлять списки
- [ ] Галочка, которая режет доступ к doh серверам
- [ ] Свой конфиг sing-box
Рефактор
- [ ] Handle для sing-box

View File

@@ -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 <podkop@itdog.info>
@@ -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

View File

@@ -1,3 +1,28 @@
#!/bin/sh
/etc/init.d/podkop add_route_interface
. /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

View File

@@ -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"