From 938a3be60a5f5c23687c7b24258534e6a8d986e5 Mon Sep 17 00:00:00 2001 From: David Vazgenovich Shakaryan Date: Tue, 16 Dec 2025 04:21:57 -0800 Subject: support PersistentKeepalive --- wg-genconf.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/wg-genconf.py b/wg-genconf.py index b56347a..bcc7efe 100755 --- a/wg-genconf.py +++ b/wg-genconf.py @@ -55,6 +55,7 @@ class Interface(collections.UserDict): _INHERITABLE = [ 'port', 'fwmark', + 'keepalive', 'file-prefix', 'name-format', @@ -174,6 +175,8 @@ def gc_if_data(if_): 'pubkey': peer['pubkey'], 'ips': ipspecs_to_ips(peer, peerspec.get('ips', ['{peer}'])), 'endpoint': None, + 'keepalive': (peerspec['keepalive'] if 'keepalive' in peerspec else + if_.get('keepalive')), } if (host := peer.get('host')): peer_data['endpoint'] = f'{host}:{peer.get('port', 51820)}' @@ -203,6 +206,8 @@ def gc_if_wgquick(if_data): buf.write(f'AllowedIPs = {ip}\n') if (endpoint := peer_data.get('endpoint')): buf.write(f'Endpoint = {endpoint}\n') + if (keepalive := peer_data.get('keepalive')): + buf.write(f'PersistentKeepalive = {keepalive}\n') return buf @@ -244,6 +249,8 @@ def gc_if_systemd_netdev(if_data): buf.write(f'AllowedIPs={ip}\n') if (endpoint := peer_data.get('endpoint')): buf.write(f'Endpoint={endpoint}\n') + if (keepalive := peer_data.get('keepalive')): + buf.write(f'PersistentKeepalive={keepalive}\n') return buf -- cgit v1.2.3-70-g09d2