zapret/init.d/keenetic/functions
2023-05-25 23:51:39 +03:00

47 lines
1.0 KiB
Bash

#!/bin/sh
SCRIPT=$(readlink -f "$0")
EXEDIR=$(dirname "$SCRIPT")
ZAPRET_BASE=$(readlink -f "$EXEDIR/../..")
. "$ZAPRET_BASE/init.d/sysv/functions"
CUSTOM_SCRIPT="$ZAPRET_BASE/init.d/keenetic/custom"
[ -f "$CUSTOM_SCRIPT" ] && . "$CUSTOM_SCRIPT"
load_kmod()
{
if lsmod | grep "$1" &> /dev/null ; then
echo "$1.ko is already loaded"
else
if insmod "/lib/modules/$(uname -r)/$1.ko" &> /dev/null; then
echo "$1.ko loaded"
else
echo "Cannot find $1.ko kernel module, aborting"
exit 1
fi
fi
}
# Fix local source ip issue when quic packets were sent with raw sockets (no Keenetic-specific iptable marks were applied)
fw_nfqws_quic()
{
# $1 - 1 - add, 0 - del
# $2 - iptable filter
ipt_print_op $1 "$2" "nfqws quic masquerade"
rule="$2 -d 0/0 -j MASQUERADE"
if [ -n "$IFACE_WAN" ] ; then
for wan in $IFACE_WAN; do
ipt_add_del $1 POSTROUTING -t nat -o $wan $rule
done
else
ipt_add_del $1 POSTROUTING -t nat $rule
fi
}
nft_fw_nfqws_quic()
{
echo "Quic through nft is not supported"
}