diff --git a/security/tinc/src/opnsense/mvc/app/controllers/OPNsense/Tinc/forms/dialogHost.xml b/security/tinc/src/opnsense/mvc/app/controllers/OPNsense/Tinc/forms/dialogHost.xml
index b2fda29f2..232e97fa5 100644
--- a/security/tinc/src/opnsense/mvc/app/controllers/OPNsense/Tinc/forms/dialogHost.xml
+++ b/security/tinc/src/opnsense/mvc/app/controllers/OPNsense/Tinc/forms/dialogHost.xml
@@ -21,7 +21,7 @@
host.extaddress
text
- This machines external address to use
+ This machines external addresses to use (separated by comma)
host.extport
diff --git a/security/tinc/src/opnsense/mvc/app/controllers/OPNsense/Tinc/forms/dialogNetwork.xml b/security/tinc/src/opnsense/mvc/app/controllers/OPNsense/Tinc/forms/dialogNetwork.xml
index e2d9697f8..4fec66b52 100644
--- a/security/tinc/src/opnsense/mvc/app/controllers/OPNsense/Tinc/forms/dialogNetwork.xml
+++ b/security/tinc/src/opnsense/mvc/app/controllers/OPNsense/Tinc/forms/dialogNetwork.xml
@@ -69,7 +69,7 @@
network.extaddress
text
- This machines external address to use
+ This machines external addresses to use (separated by comma)
network.extport
diff --git a/security/tinc/src/opnsense/mvc/app/models/OPNsense/Tinc/Tinc.xml b/security/tinc/src/opnsense/mvc/app/models/OPNsense/Tinc/Tinc.xml
index e8abbc0c0..89dc220e4 100644
--- a/security/tinc/src/opnsense/mvc/app/models/OPNsense/Tinc/Tinc.xml
+++ b/security/tinc/src/opnsense/mvc/app/models/OPNsense/Tinc/Tinc.xml
@@ -22,7 +22,7 @@
Please specify a valid hostname.
- Y
+ N
/^([0-9a-zA-Z\.,_\-:]){0,1024}$/u
@@ -132,7 +132,7 @@
Port number must be between 1...65535
- Y
+ N
/^([0-9a-zA-Z\.,_\-:]){0,1024}$/u
diff --git a/security/tinc/src/opnsense/scripts/OPNsense/Tinc/lib/objects.py b/security/tinc/src/opnsense/scripts/OPNsense/Tinc/lib/objects.py
index 6b9ccfcd3..cece619f4 100755
--- a/security/tinc/src/opnsense/scripts/OPNsense/Tinc/lib/objects.py
+++ b/security/tinc/src/opnsense/scripts/OPNsense/Tinc/lib/objects.py
@@ -30,8 +30,6 @@ class NetwConfObject(object):
self._payload = dict()
self._payload['hostname'] = None
self._payload['network'] = None
- self._payload['address'] = None
- self._payload['port'] = None
def is_valid(self):
for key in self._payload:
@@ -97,6 +95,10 @@ class Network(NetwConfObject):
def config_text(self):
result = list()
result.append('AddressFamily=any')
+ if 'address' in self._payload:
+ addresses = self._payload['address'].split(',')
+ for address in addresses:
+ result.append('Address=%s %s' % (address, self._payload['port']))
result.append('Mode=%(mode)s' % self._payload)
result.append('PMTUDiscovery=%(PMTUDiscovery)s' % self._payload)
result.append('Port=%(port)s' % self._payload)
@@ -137,7 +139,10 @@ class Host(NetwConfObject):
def config_text(self):
result = list()
- result.append('Address=%(address)s %(port)s'%self._payload)
+ if 'address' in self._payload:
+ addresses = self._payload['address'].split(',')
+ for address in addresses:
+ result.append('Address=%s %s' % (address, self._payload['port']))
if 'subnet' in self._payload:
networks = self._payload['subnet'].split(',')
for network in networks: