wg-installer: delete old interfaces
Add "wg_check_interfaces" and specify a timeout in the config file. This allows to delete not used wireguard-interfaces automatically. For example a cronjob can be installed that calls: . /usr/share/wginstaller/wg_functions.sh && wg_check_interfaces Signed-off-by: Nick Hainke <vincent@systemli.org>
This commit is contained in:
parent
17b18d825c
commit
36dc9b3f79
2 changed files with 28 additions and 0 deletions
|
@ -4,3 +4,4 @@ config server
|
|||
option base_prefix '2002::/64'
|
||||
option wg_key '/root/wg.key'
|
||||
option wg_pub '/root/wg.pub'
|
||||
option timeout_handshake '600'
|
||||
|
|
|
@ -1,6 +1,33 @@
|
|||
. /usr/share/libubox/jshn.sh
|
||||
. /usr/share/wginstaller/wg.sh
|
||||
|
||||
wg_timeout () {
|
||||
local int=$1
|
||||
|
||||
handshake=$(wg show $int latest-handshakes | awk '{print $2}')
|
||||
timeout=$(uci get wgserver.@server[0].timeout_handshake)
|
||||
|
||||
if [ $handshake -ge $timeout ]; then
|
||||
echo "1"
|
||||
else
|
||||
echo "0"
|
||||
fi
|
||||
}
|
||||
|
||||
wg_check_interface () {
|
||||
local int=$1
|
||||
if [ $(wg_timeout $int) -eq "1" ]; then
|
||||
ip link del dev $int
|
||||
fi
|
||||
}
|
||||
|
||||
wg_check_interfaces () {
|
||||
wg_interfaces=$(wg show interfaces)
|
||||
for interface in $wg_interfaces; do
|
||||
wg_check_interface $interface
|
||||
done
|
||||
}
|
||||
|
||||
wg_get_usage () {
|
||||
num_interfaces=$(wg show interfaces | wc -w)
|
||||
json_init
|
||||
|
|
Loading…
Reference in a new issue