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>
(cherry picked from commit 36dc9b3f79
)
This commit is contained in:
parent
335ad2a4d7
commit
49f898044c
2 changed files with 28 additions and 0 deletions
|
@ -5,3 +5,4 @@ config server
|
|||
option base_v4prefix '10.0.0.1/24'
|
||||
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