mirror of
https://github.com/itdoginfo/podkop.git
synced 2025-12-12 14:37:03 +03:00
Fix hotplug, added logger, fix add_route
This commit is contained in:
@@ -112,6 +112,7 @@ Wiki
|
||||
Низкий приоритет
|
||||
- [ ] Переменная, раз во сколько часов обновлять списки
|
||||
- [ ] Галочка, которая режет доступ к doh серверам
|
||||
- [ ] Свой конфиг sing-box
|
||||
|
||||
Рефактор
|
||||
- [ ] Handle для sing-box
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user