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: