mirror of
https://github.com/qosmio/nss-packages.git
synced 2025-12-17 00:33:40 +00:00
nss-clients: ovpn: fixup init script
This is just a check-in of some fixes. Offloaded OpenVPN via NSS is non-functional though Signed-off-by: Sean Khan <datapronix@protonmail.com>
This commit is contained in:
parent
0e6ca853b0
commit
2683c49084
@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh /etc/rc.common
|
#!/bin/sh /etc/rc.common
|
||||||
|
# shellcheck disable=3043,2034,2166
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
# Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||||
# Permission to use, copy, modify, and/or distribute this software for
|
# Permission to use, copy, modify, and/or distribute this software for
|
||||||
@ -14,56 +14,91 @@
|
|||||||
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
ecm_disable() {
|
# START=26
|
||||||
if [ ! -d /sys/module/ecm ]; then
|
USE_PROCD=1
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo 1 > /sys/kernel/debug/ecm/front_end_ipv4_stop
|
ecm_disable() {
|
||||||
echo 1 > /sys/kernel/debug/ecm/front_end_ipv6_stop
|
if [ ! -d /sys/module/ecm ]; then
|
||||||
echo 1 > /sys/kernel/debug/ecm/ecm_db/defunct_all
|
return
|
||||||
sleep 2
|
fi
|
||||||
|
|
||||||
|
echo 1 > /sys/kernel/debug/ecm/front_end_ipv4_stop
|
||||||
|
echo 1 > /sys/kernel/debug/ecm/front_end_ipv6_stop
|
||||||
|
echo 1 > /sys/kernel/debug/ecm/ecm_db/defunct_all
|
||||||
}
|
}
|
||||||
|
|
||||||
ecm_enable() {
|
ecm_enable() {
|
||||||
if [ ! -d /sys/module/ecm ]; then
|
if [ ! -d /sys/module/ecm ]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo 0 > /sys/kernel/debug/ecm/ecm_db/defunct_all
|
echo 0 > /sys/kernel/debug/ecm/ecm_db/defunct_all
|
||||||
echo 0 > /sys/kernel/debug/ecm/front_end_ipv4_stop
|
echo 0 > /sys/kernel/debug/ecm/front_end_ipv4_stop
|
||||||
echo 0 > /sys/kernel/debug/ecm/front_end_ipv6_stop
|
echo 0 > /sys/kernel/debug/ecm/front_end_ipv6_stop
|
||||||
}
|
}
|
||||||
|
|
||||||
restart() {
|
check_enabled() {
|
||||||
ecm_disable
|
local enabled
|
||||||
|
total_enabled=${total_enabled:-0}
|
||||||
/etc/init.d/openvpn stop
|
config_get_bool enabled "$1" enabled 0
|
||||||
rmmod qca-nss-ovpn-link
|
[ "$enabled" = "1" ] && total_enabled=$((total_enabled + 1))
|
||||||
rmmod qca-nss-ovpn-mgr
|
|
||||||
|
|
||||||
insmod qca-nss-ovpn-mgr
|
|
||||||
insmod qca-nss-ovpn-link
|
|
||||||
|
|
||||||
if [ "$?" -gt 0 ]; then
|
|
||||||
echo "Failed to load plugin. Please start ecm if not done already"
|
|
||||||
ecm_enable
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
ecm_enable
|
|
||||||
}
|
}
|
||||||
|
|
||||||
start() {
|
mod_action() {
|
||||||
restart
|
local action="$1"
|
||||||
|
|
||||||
|
if [ "$action" != "load" -a "$action" != "unload" ]; then
|
||||||
|
echo "Invalid action: $action, must be load or unload"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
shift
|
||||||
|
local modules="$*"
|
||||||
|
|
||||||
|
[ -z "$modules" ] && {
|
||||||
|
echo "No modules specified"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in $modules; do
|
||||||
|
[ -n "$i" ] && {
|
||||||
|
if [ "$action" = "unload" ]; then
|
||||||
|
grep -q -w "$i" /proc/modules && {
|
||||||
|
rmmod "$i" || echo "Failed to unload $i"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
modprobe "$i" 2> /dev/null || {
|
||||||
|
echo "Failed to load $i"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
stop() {
|
start_service() {
|
||||||
ecm_disable
|
config_load openvpn
|
||||||
|
config_foreach check_enabled openvpn
|
||||||
|
|
||||||
/etc/init.d/openvpn stop
|
[ "$total_enabled" = "0" ] && return
|
||||||
rmmod qca-nss-ovpn-link
|
|
||||||
rmmod qca-nss-ovpn-mgr
|
|
||||||
|
|
||||||
ecm_enable
|
ecm_disable
|
||||||
|
|
||||||
|
/etc/init.d/openvpn stop 2> /dev/null
|
||||||
|
|
||||||
|
mod_action unload qca_nss_ovpn_link qca_nss_ovpn_mgr
|
||||||
|
mod_action load qca_nss_ovpn_link qca_nss_ovpn_mgr ovpn_dco_v2
|
||||||
|
|
||||||
|
ecm_enable
|
||||||
|
|
||||||
|
/etc/init.d/openvpn start 2> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_service() {
|
||||||
|
ecm_disable
|
||||||
|
|
||||||
|
/etc/init.d/openvpn stop 2> /dev/null
|
||||||
|
mod_action unload qca_nss_ovpn_link qca_nss_ovpn_mgr
|
||||||
|
|
||||||
|
ecm_enable
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user