2024-10-25 14:29:47 +03:00
|
|
|
readonly HOSTLIST_MARKER="<HOSTLIST>"
|
2024-10-29 20:29:49 +03:00
|
|
|
readonly HOSTLIST_NOAUTO_MARKER="<HOSTLIST_NOAUTO>"
|
2024-10-25 14:29:47 +03:00
|
|
|
|
2024-10-28 09:32:24 +03:00
|
|
|
find_hostlists()
|
|
|
|
{
|
|
|
|
[ -n "$HOSTLIST_BASE" ] || HOSTLIST_BASE="$ZAPRET_BASE/ipset"
|
|
|
|
|
|
|
|
HOSTLIST="$HOSTLIST_BASE/zapret-hosts.txt.gz"
|
|
|
|
[ -f "$HOSTLIST" ] || HOSTLIST="$HOSTLIST_BASE/zapret-hosts.txt"
|
|
|
|
[ -f "$HOSTLIST" ] || HOSTLIST=
|
|
|
|
|
|
|
|
HOSTLIST_USER="$HOSTLIST_BASE/zapret-hosts-user.txt.gz"
|
|
|
|
[ -f "$HOSTLIST_USER" ] || HOSTLIST_USER="$HOSTLIST_BASE/zapret-hosts-user.txt"
|
|
|
|
[ -f "$HOSTLIST_USER" ] || HOSTLIST_USER=
|
|
|
|
|
|
|
|
HOSTLIST_EXCLUDE="$HOSTLIST_BASE/zapret-hosts-user-exclude.txt.gz"
|
|
|
|
[ -f "$HOSTLIST_EXCLUDE" ] || HOSTLIST_EXCLUDE="$HOSTLIST_BASE/zapret-hosts-user-exclude.txt"
|
|
|
|
[ -f "$HOSTLIST_EXCLUDE" ] || HOSTLIST_EXCLUDE=
|
|
|
|
|
|
|
|
HOSTLIST_AUTO="$HOSTLIST_BASE/zapret-hosts-auto.txt"
|
|
|
|
HOSTLIST_AUTO_DEBUGLOG="$HOSTLIST_BASE/zapret-hosts-auto-debug.log"
|
|
|
|
}
|
|
|
|
|
|
|
|
filter_apply_hostlist_target()
|
|
|
|
{
|
|
|
|
# $1 - var name of tpws or nfqws params
|
|
|
|
|
2024-10-29 20:29:49 +03:00
|
|
|
local v parm parm1 parm2 parm3 parm4 parm5 parm6 parm7 parm8 parmNA
|
|
|
|
local hmarker hmarkerNA
|
2024-10-25 14:29:47 +03:00
|
|
|
eval v="\$$1"
|
2024-10-29 20:29:49 +03:00
|
|
|
if contains "$v" "$HOSTLIST_MARKER" || contains "$v" "$HOSTLIST_NOAUTO_MARKER"; then
|
2024-10-25 14:29:47 +03:00
|
|
|
[ "$MODE_FILTER" = hostlist -o "$MODE_FILTER" = autohostlist ] &&
|
|
|
|
{
|
|
|
|
find_hostlists
|
|
|
|
parm1="${HOSTLIST_USER:+--hostlist=$HOSTLIST_USER}"
|
|
|
|
parm2="${HOSTLIST:+--hostlist=$HOSTLIST}"
|
|
|
|
parm3="${HOSTLIST_EXCLUDE:+--hostlist-exclude=$HOSTLIST_EXCLUDE}"
|
|
|
|
[ "$MODE_FILTER" = autohostlist ] &&
|
|
|
|
{
|
|
|
|
parm4="--hostlist-auto=$HOSTLIST_AUTO"
|
|
|
|
parm5="${AUTOHOSTLIST_FAIL_THRESHOLD:+--hostlist-auto-fail-threshold=$AUTOHOSTLIST_FAIL_THRESHOLD}"
|
|
|
|
parm6="${AUTOHOSTLIST_FAIL_TIME:+--hostlist-auto-fail-time=$AUTOHOSTLIST_FAIL_TIME}"
|
|
|
|
parm7="${AUTOHOSTLIST_RETRANS_THRESHOLD:+--hostlist-auto-retrans-threshold=$AUTOHOSTLIST_RETRANS_THRESHOLD}"
|
2024-10-29 20:29:49 +03:00
|
|
|
parm8="--hostlist=$HOSTLIST_AUTO"
|
2024-10-25 14:29:47 +03:00
|
|
|
}
|
|
|
|
parm="$parm1${parm2:+ $parm2}${parm3:+ $parm3}${parm4:+ $parm4}${parm5:+ $parm5}${parm6:+ $parm6}${parm7:+ $parm7}"
|
2024-10-29 20:29:49 +03:00
|
|
|
parmNA="$parm1${parm2:+ $parm2}${parm3:+ $parm3}${parm8:+ $parm8}"
|
2024-10-25 14:29:47 +03:00
|
|
|
}
|
2024-10-29 20:29:49 +03:00
|
|
|
v="$(replace_str $HOSTLIST_NOAUTO_MARKER "$parmNA" "$v")"
|
2024-10-25 14:29:47 +03:00
|
|
|
v="$(replace_str $HOSTLIST_MARKER "$parm" "$v")"
|
|
|
|
[ "$MODE_FILTER" = autohostlist -a "$AUTOHOSTLIST_DEBUGLOG" = 1 ] && {
|
|
|
|
v="$v --hostlist-auto-debug=$HOSTLIST_AUTO_DEBUGLOG"
|
|
|
|
}
|
|
|
|
eval $1=\""$v"\"
|
2024-10-29 20:29:49 +03:00
|
|
|
fi
|
2024-10-28 09:32:24 +03:00
|
|
|
}
|