mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-03 22:53:56 +08:00
🦄 Sync 2026-10-17 20:40:04
This commit is contained in:
1 parent
315f273687
commit
c9ccf6f883
37 files changed
+716
-171
No files matched your search
@@ -619,6 +619,9 @@ start_crontab() {
|
||||
return
|
||||
}
|
||||
|
||||
local setsid_cmd=""
|
||||
command -v setsid >/dev/null 2>&1 && setsid_cmd="setsid "
|
||||
|
||||
stop_week_mode=$(config_n_get @global_delay[0] stop_week_mode)
|
||||
stop_time_mode=$(config_n_get @global_delay[0] stop_time_mode)
|
||||
if [ -n "$stop_week_mode" ]; then
|
||||
@@ -626,7 +629,7 @@ start_crontab() {
|
||||
stop_time_mm=$(echo $stop_time_mode | awk -F ':' '{print $2}')
|
||||
local t="$stop_time_mm $stop_time_hh * * $stop_week_mode"
|
||||
[ "$stop_week_mode" = "7" ] && t="$stop_time_mm $stop_time_hh * * *"
|
||||
echo "$t /etc/init.d/$CONFIG stop cron > /dev/null 2>&1 &" >>/etc/crontabs/root
|
||||
echo "$t ${setsid_cmd}/etc/init.d/$CONFIG stop cron > /dev/null 2>&1 &" >>/etc/crontabs/root
|
||||
log_i18n 0 "Scheduled tasks: Auto stop service."
|
||||
fi
|
||||
|
||||
@@ -637,7 +640,7 @@ start_crontab() {
|
||||
start_time_mm=$(echo $start_time_mode | awk -F ':' '{print $2}')
|
||||
local t="$start_time_mm $start_time_hh * * $start_week_mode"
|
||||
[ "$start_week_mode" = "7" ] && t="$start_time_mm $start_time_hh * * *"
|
||||
echo "$t /etc/init.d/$CONFIG start cron > /dev/null 2>&1 &" >>/etc/crontabs/root
|
||||
echo "$t ${setsid_cmd}/etc/init.d/$CONFIG start cron > /dev/null 2>&1 &" >>/etc/crontabs/root
|
||||
log_i18n 0 "Scheduled tasks: Auto start service."
|
||||
fi
|
||||
|
||||
@@ -651,7 +654,7 @@ start_crontab() {
|
||||
if [ "$restart_week_mode" = "8" ]; then
|
||||
update_loop=1
|
||||
else
|
||||
echo "$t /etc/init.d/$CONFIG restart cron > /dev/null 2>&1 &" >>/etc/crontabs/root
|
||||
echo "$t ${setsid_cmd}/etc/init.d/$CONFIG restart cron > /dev/null 2>&1 &" >>/etc/crontabs/root
|
||||
fi
|
||||
log_i18n 0 "Scheduled tasks: Auto restart service."
|
||||
fi
|
||||
@@ -666,7 +669,7 @@ start_crontab() {
|
||||
if [ "$rules_update_week_mode" = "8" ]; then
|
||||
update_loop=1
|
||||
else
|
||||
echo "$t lua $APP_PATH/rule_update.lua log all cron > /dev/null 2>&1 &" >>/etc/crontabs/root
|
||||
echo "$t ${setsid_cmd}lua $APP_PATH/rule_update.lua log all cron > /dev/null 2>&1 &" >>/etc/crontabs/root
|
||||
fi
|
||||
log_i18n 0 "Scheduled tasks: Auto update rules."
|
||||
fi
|
||||
@@ -695,7 +698,7 @@ start_crontab() {
|
||||
if [ "$sub_update_week_mode" = "8" ]; then
|
||||
update_loop=1
|
||||
else
|
||||
echo "$t lua $APP_PATH/subscribe.lua start $cfgids cron > /dev/null 2>&1 &" >>/etc/crontabs/root
|
||||
echo "$t ${setsid_cmd}lua $APP_PATH/subscribe.lua start $cfgids cron > /dev/null 2>&1 &" >>/etc/crontabs/root
|
||||
fi
|
||||
done
|
||||
rm -rf $TMP_SUB_PATH
|
||||
|
||||
@@ -1,17 +1,61 @@
|
||||
#!/bin/sh
|
||||
# dhcp.leases to hosts
|
||||
|
||||
# DHCP leases and static hosts to hosts
|
||||
|
||||
. /lib/functions.sh
|
||||
. /usr/share/passwall2/utils.sh
|
||||
LOCK_FILE=${LOCK_PATH}/${CONFIG}_lease2hosts.lock
|
||||
LEASE_FILE=$(uci -q get dhcp.@dnsmasq[0].leasefile || echo "/tmp/dhcp.leases")
|
||||
DNSMASQ_LEASE_FILE=$(uci -q get 'dhcp.@dnsmasq[0].leasefile')
|
||||
DNSMASQ_LEASE_FILE=${DNSMASQ_LEASE_FILE:-/tmp/dhcp.leases}
|
||||
ODHCPD_LEASE_FILE=$(uci -q get dhcp.odhcpd.leasefile)
|
||||
ODHCPD_LEASE_FILE=${ODHCPD_LEASE_FILE:-/tmp/odhcpd.leases}
|
||||
HOSTS_FILE="$TMP_PATH2/dhcp-hosts"
|
||||
TMP_FILE="/tmp/dhcp-hosts.tmp"
|
||||
|
||||
exec 99>"$LOCK_FILE"
|
||||
flock -n 99
|
||||
if [ "$?" != 0 ]; then
|
||||
exit 0
|
||||
fi
|
||||
exec 9>"$LOCK_FILE"
|
||||
flock -n 9 || exit 0
|
||||
|
||||
read_static_host() {
|
||||
local name ip
|
||||
config_get name "$1" name
|
||||
config_get ip "$1" ip
|
||||
[ -n "$name" ] && [ "$name" != "*" ] && [ -n "$ip" ] && [ "$ip" != "ignore" ] || return
|
||||
printf '%s %s\n' "$ip" "$name"
|
||||
}
|
||||
|
||||
# Static DHCP configuration only needs to be read once at startup.
|
||||
STATIC_HOSTS=$(
|
||||
config_load dhcp
|
||||
config_foreach read_static_host host
|
||||
)
|
||||
|
||||
read_odhcpd_leases() {
|
||||
[ -f "$ODHCPD_LEASE_FILE" ] || return
|
||||
awk -v now="$(date +%s)" '
|
||||
function valid_name(name) {
|
||||
return name ~ /^[a-zA-Z0-9_][a-zA-Z0-9_.-]*$/
|
||||
}
|
||||
# State records: # interface DUID IAID hostname expiry assigned length address/prefix ...
|
||||
$1 == "#" {
|
||||
if (NF < 9 || !valid_name($5) || ($6 != -1 && $6 <= now))
|
||||
next
|
||||
# Only host addresses, never delegated IPv6 prefixes.
|
||||
if (!(($4 == "ipv4" && $8 == 32) || ($4 != "ipv4" && $8 == 128)))
|
||||
next
|
||||
for (i = 9; i <= NF; i++) {
|
||||
split($i, addr, "/")
|
||||
print addr[1] " " $5
|
||||
}
|
||||
next
|
||||
}
|
||||
# Older odhcpd versions also include hosts-format lines, with optional aliases.
|
||||
NF >= 2 && $1 ~ /^[0-9a-fA-F:.]+$/ {
|
||||
for (i = 2; i <= NF && $i !~ /^#/; i++)
|
||||
if (valid_name($i))
|
||||
print $1 " " $i
|
||||
}
|
||||
' "$ODHCPD_LEASE_FILE"
|
||||
}
|
||||
|
||||
reload_dnsmasq_pids() {
|
||||
local pidfile pid
|
||||
@@ -27,22 +71,26 @@ reload_dnsmasq_pids() {
|
||||
|
||||
while true; do
|
||||
|
||||
if [ -f "$LEASE_FILE" ]; then
|
||||
awk 'NF >= 4 && $4 != "*" {print $3" "$4}' "$LEASE_FILE" | sort > "$TMP_FILE"
|
||||
if [ -s "$TMP_FILE" ]; then
|
||||
if [ ! -f "$HOSTS_FILE" ] || ! cmp -s "$TMP_FILE" "$HOSTS_FILE"; then
|
||||
mv "$TMP_FILE" "$HOSTS_FILE"
|
||||
reload_dnsmasq_pids
|
||||
else
|
||||
rm -f "$TMP_FILE"
|
||||
fi
|
||||
{
|
||||
[ -n "$STATIC_HOSTS" ] && printf '%s\n' "$STATIC_HOSTS"
|
||||
if [ -f "$DNSMASQ_LEASE_FILE" ]; then
|
||||
awk 'NF >= 4 && $4 != "*" {print $3" "$4}' "$DNSMASQ_LEASE_FILE"
|
||||
fi
|
||||
read_odhcpd_leases
|
||||
} | sort -u > "$TMP_FILE"
|
||||
if [ -s "$TMP_FILE" ]; then
|
||||
if [ ! -f "$HOSTS_FILE" ] || ! cmp -s "$TMP_FILE" "$HOSTS_FILE"; then
|
||||
mv "$TMP_FILE" "$HOSTS_FILE"
|
||||
reload_dnsmasq_pids
|
||||
else
|
||||
if [ -s "$HOSTS_FILE" ]; then
|
||||
: > "$HOSTS_FILE"
|
||||
reload_dnsmasq_pids
|
||||
fi
|
||||
rm -f "$TMP_FILE"
|
||||
fi
|
||||
else
|
||||
if [ -s "$HOSTS_FILE" ]; then
|
||||
: > "$HOSTS_FILE"
|
||||
reload_dnsmasq_pids
|
||||
fi
|
||||
rm -f "$TMP_FILE"
|
||||
fi
|
||||
|
||||
sleep 60
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
CONFIG=passwall2
|
||||
dir="$1"
|
||||
status="$2"
|
||||
manager="$3"
|
||||
force="$4"
|
||||
|
||||
[ "$manager" = apk ] && extension=apk || extension=ipk
|
||||
set -- "$dir/luci-app-${CONFIG}.${extension}"
|
||||
for package in "$dir"/luci-i18n-${CONFIG}-*.${extension}; do
|
||||
[ -f "$package" ] && set -- "$@" "$package"
|
||||
done
|
||||
|
||||
if [ "$manager" = apk ]; then
|
||||
extra=""
|
||||
[ "$force" = 1 ] && extra="--force-reinstall --force-overwrite"
|
||||
apk add --allow-untrusted $extra "$@"
|
||||
result=$?
|
||||
else
|
||||
extra=""
|
||||
[ "$force" = 1 ] && extra="--force-reinstall"
|
||||
opkg install $extra "$@"
|
||||
result=$?
|
||||
fi
|
||||
|
||||
rm -rf "$dir"
|
||||
if [ "$result" = 0 ]; then
|
||||
rm -f "/tmp/etc/${CONFIG}_tmp/${CONFIG}_version" /tmp/luci-indexcache /tmp/luci-indexcache.*
|
||||
if [ -x /etc/init.d/rpcd ]; then
|
||||
/etc/init.d/rpcd restart >/dev/null 2>&1
|
||||
fi
|
||||
if [ -x /etc/init.d/uhttpd ]; then
|
||||
/etc/init.d/uhttpd reload >/dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
[ "$result" = 0 ] && echo '{"code":0}' > "$status" || echo '{"code":1}' > "$status"
|
||||
(sleep 60; rm -f "$status") >/dev/null 2>&1 &
|
||||
@@ -2141,7 +2141,7 @@ local function curl(url, file, ua, mode, hwid)
|
||||
"-fskL", "-w %{http_code}", "--retry 3", "--connect-timeout 3", "-H 'Accept: */*'", "-H 'Accept-Encoding: identity'"
|
||||
}
|
||||
if ua and ua ~= "" and ua ~= "curl" then
|
||||
ua = (ua == "passwall2") and ("passwall2/" .. api.get_version()) or ua
|
||||
ua = (ua == "passwall2") and ("passwall2/" .. (api.get_version():match("^([^-]+)") or "")) or ua
|
||||
curl_args[#curl_args + 1] = '--user-agent "' .. ua .. '"'
|
||||
end
|
||||
if hwid == "1" then
|
||||
|
||||
Reference in new issue
Block a user