From 11fdb20ca051a6e5083d0d321191033418e5f8f7 Mon Sep 17 00:00:00 2001
From: jjakob <jernej.jakob@gmail.com>
Date: Sat, 4 Apr 2020 15:03:42 +0200
Subject: openvpn: T2222: set 'multihome' option when local-host is unset

If configured with protocol udp and no local-host, openvpn needs
the 'multihome' option to correctly work on all addresses.
---
 src/conf_mode/interfaces-openvpn.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/conf_mode/interfaces-openvpn.py b/src/conf_mode/interfaces-openvpn.py
index fb2d6e6d9..9bac4d759 100755
--- a/src/conf_mode/interfaces-openvpn.py
+++ b/src/conf_mode/interfaces-openvpn.py
@@ -66,6 +66,10 @@ proto {% if 'tcp-active' in protocol -%}tcp-client{% elif 'tcp-passive' in proto
 local {{ local_host }}
 {% endif %}
 
+{%- if mode == 'server' and protocol == 'udp' and not local_host %}
+multihome
+{% endif %}
+
 {%- if local_port %}
 lport {{ local_port }}
 {% endif %}
@@ -308,7 +312,7 @@ default_config_data = {
     'ncp_ciphers': '',
     'options': [],
     'persistent_tunnel': False,
-    'protocol': '',
+    'protocol': 'udp',
     'redirect_gateway': '',
     'remote_address': '',
     'remote_host': [],
@@ -512,8 +516,7 @@ def get_config():
 
     # OpenVPN operation mode
     if conf.exists('mode'):
-        mode = conf.return_value('mode')
-        openvpn['mode'] = mode
+        openvpn['mode'] = conf.return_value('mode')
 
     # Additional OpenVPN options
     if conf.exists('openvpn-option'):
-- 
cgit v1.2.3