|
|
7a3408 |
From 82e798b603e50a2177f485294cb984590627c504 Mon Sep 17 00:00:00 2001
|
|
|
7a3408 |
Message-Id: <82e798b603e50a2177f485294cb984590627c504@dist-git>
|
|
|
7a3408 |
From: Martin Kletzander <mkletzan@redhat.com>
|
|
|
7a3408 |
Date: Tue, 11 Aug 2015 13:13:13 -0400
|
|
|
7a3408 |
Subject: [PATCH] conf: Don't try formating non-existing addresses
|
|
|
7a3408 |
|
|
|
7a3408 |
Commit a6f9af8292b6 added checking for address colisions between
|
|
|
7a3408 |
starting and ending addresses of forwarding addresses, but forgot that
|
|
|
7a3408 |
there might be no addresses set at all.
|
|
|
7a3408 |
|
|
|
7a3408 |
This fixes an error in the original patch for:
|
|
|
7a3408 |
|
|
|
7a3408 |
https://bugzilla.redhat.com/show_bug.cgi?id=985653
|
|
|
7a3408 |
|
|
|
7a3408 |
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
|
|
|
7a3408 |
(cherry picked from commit 1f24c1494a85d663fa36047922a7974a292a46a7)
|
|
|
7a3408 |
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
7a3408 |
---
|
|
|
7a3408 |
src/conf/network_conf.c | 23 ++++++++++++++++---
|
|
|
7a3408 |
.../nat-network-forward-nat-no-address.xml | 25 +++++++++++++++++++++
|
|
|
7a3408 |
.../nat-network-forward-nat-no-address.xml | 26 ++++++++++++++++++++++
|
|
|
7a3408 |
tests/networkxml2xmltest.c | 1 +
|
|
|
7a3408 |
4 files changed, 72 insertions(+), 3 deletions(-)
|
|
|
7a3408 |
create mode 100644 tests/networkxml2xmlin/nat-network-forward-nat-no-address.xml
|
|
|
7a3408 |
create mode 100644 tests/networkxml2xmlout/nat-network-forward-nat-no-address.xml
|
|
|
7a3408 |
|
|
|
7a3408 |
diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
|
|
|
7a3408 |
index b03c2fd..e765c65 100644
|
|
|
7a3408 |
--- a/src/conf/network_conf.c
|
|
|
7a3408 |
+++ b/src/conf/network_conf.c
|
|
|
7a3408 |
@@ -1729,9 +1729,26 @@ virNetworkForwardNatDefParseXML(const char *networkName,
|
|
|
7a3408 |
goto cleanup;
|
|
|
7a3408 |
}
|
|
|
7a3408 |
|
|
|
7a3408 |
- /* verify that start <= end */
|
|
|
7a3408 |
- if (virSocketAddrGetRange(&def->addr.start, &def->addr.end, NULL, 0) < 0)
|
|
|
7a3408 |
- goto cleanup;
|
|
|
7a3408 |
+ if (addrStart && addrEnd) {
|
|
|
7a3408 |
+ /* verify that start <= end */
|
|
|
7a3408 |
+ if (virSocketAddrGetRange(&def->addr.start, &def->addr.end, NULL, 0) < 0)
|
|
|
7a3408 |
+ goto cleanup;
|
|
|
7a3408 |
+ } else {
|
|
|
7a3408 |
+ if (addrStart) {
|
|
|
7a3408 |
+ virReportError(VIR_ERR_XML_ERROR,
|
|
|
7a3408 |
+ _("Only start address '%s' specified in <nat> in "
|
|
|
7a3408 |
+ "<forward> in network '%s'"),
|
|
|
7a3408 |
+ addrStart, networkName);
|
|
|
7a3408 |
+ goto cleanup;
|
|
|
7a3408 |
+ }
|
|
|
7a3408 |
+ if (addrEnd) {
|
|
|
7a3408 |
+ virReportError(VIR_ERR_XML_ERROR,
|
|
|
7a3408 |
+ _("Only end address '%s' specified in <nat> in "
|
|
|
7a3408 |
+ "<forward> in network '%s'"),
|
|
|
7a3408 |
+ addrEnd, networkName);
|
|
|
7a3408 |
+ goto cleanup;
|
|
|
7a3408 |
+ }
|
|
|
7a3408 |
+ }
|
|
|
7a3408 |
|
|
|
7a3408 |
/* ports for SNAT and MASQUERADE */
|
|
|
7a3408 |
nNatPorts = virXPathNodeSet("./port", ctxt, &natPortNodes);
|
|
|
7a3408 |
diff --git a/tests/networkxml2xmlin/nat-network-forward-nat-no-address.xml b/tests/networkxml2xmlin/nat-network-forward-nat-no-address.xml
|
|
|
7a3408 |
new file mode 100644
|
|
|
7a3408 |
index 0000000..97a6452
|
|
|
7a3408 |
--- /dev/null
|
|
|
7a3408 |
+++ b/tests/networkxml2xmlin/nat-network-forward-nat-no-address.xml
|
|
|
7a3408 |
@@ -0,0 +1,25 @@
|
|
|
7a3408 |
+<network>
|
|
|
7a3408 |
+ <name>default</name>
|
|
|
7a3408 |
+ <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
|
|
|
7a3408 |
+ <bridge name="virbr0"/>
|
|
|
7a3408 |
+ <forward mode="nat" dev="eth1">
|
|
|
7a3408 |
+ <nat>
|
|
|
7a3408 |
+ <port start='60000' end='65432'/>
|
|
|
7a3408 |
+ </nat>
|
|
|
7a3408 |
+ </forward>
|
|
|
7a3408 |
+ <ip address="192.168.122.1" netmask="255.255.255.0">
|
|
|
7a3408 |
+ <dhcp>
|
|
|
7a3408 |
+ <range start="192.168.122.2" end="192.168.122.254"/>
|
|
|
7a3408 |
+ <host mac="00:16:3e:77:e2:ed" name="a.example.com" ip="192.168.122.10"/>
|
|
|
7a3408 |
+ <host mac="00:16:3e:3e:a9:1a" name="b.example.com" ip="192.168.122.11"/>
|
|
|
7a3408 |
+ </dhcp>
|
|
|
7a3408 |
+ </ip>
|
|
|
7a3408 |
+ <ip family="ipv4" address="192.168.123.1" netmask="255.255.255.0">
|
|
|
7a3408 |
+ </ip>
|
|
|
7a3408 |
+ <ip family="ipv6" address="2001:db8:ac10:fe01::1" prefix="64">
|
|
|
7a3408 |
+ </ip>
|
|
|
7a3408 |
+ <ip family="ipv6" address="2001:db8:ac10:fd01::1" prefix="64">
|
|
|
7a3408 |
+ </ip>
|
|
|
7a3408 |
+ <ip family="ipv4" address="10.24.10.1">
|
|
|
7a3408 |
+ </ip>
|
|
|
7a3408 |
+</network>
|
|
|
7a3408 |
diff --git a/tests/networkxml2xmlout/nat-network-forward-nat-no-address.xml b/tests/networkxml2xmlout/nat-network-forward-nat-no-address.xml
|
|
|
7a3408 |
new file mode 100644
|
|
|
7a3408 |
index 0000000..f19e34d
|
|
|
7a3408 |
--- /dev/null
|
|
|
7a3408 |
+++ b/tests/networkxml2xmlout/nat-network-forward-nat-no-address.xml
|
|
|
7a3408 |
@@ -0,0 +1,26 @@
|
|
|
7a3408 |
+<network>
|
|
|
7a3408 |
+ <name>default</name>
|
|
|
7a3408 |
+ <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
|
|
|
7a3408 |
+ <forward dev='eth1' mode='nat'>
|
|
|
7a3408 |
+ <nat>
|
|
|
7a3408 |
+ <port start='60000' end='65432'/>
|
|
|
7a3408 |
+ </nat>
|
|
|
7a3408 |
+ <interface dev='eth1'/>
|
|
|
7a3408 |
+ </forward>
|
|
|
7a3408 |
+ <bridge name='virbr0' stp='on' delay='0'/>
|
|
|
7a3408 |
+ <ip address='192.168.122.1' netmask='255.255.255.0'>
|
|
|
7a3408 |
+ <dhcp>
|
|
|
7a3408 |
+ <range start='192.168.122.2' end='192.168.122.254'/>
|
|
|
7a3408 |
+ <host mac='00:16:3e:77:e2:ed' name='a.example.com' ip='192.168.122.10'/>
|
|
|
7a3408 |
+ <host mac='00:16:3e:3e:a9:1a' name='b.example.com' ip='192.168.122.11'/>
|
|
|
7a3408 |
+ </dhcp>
|
|
|
7a3408 |
+ </ip>
|
|
|
7a3408 |
+ <ip family='ipv4' address='192.168.123.1' netmask='255.255.255.0'>
|
|
|
7a3408 |
+ </ip>
|
|
|
7a3408 |
+ <ip family='ipv6' address='2001:db8:ac10:fe01::1' prefix='64'>
|
|
|
7a3408 |
+ </ip>
|
|
|
7a3408 |
+ <ip family='ipv6' address='2001:db8:ac10:fd01::1' prefix='64'>
|
|
|
7a3408 |
+ </ip>
|
|
|
7a3408 |
+ <ip family='ipv4' address='10.24.10.1'>
|
|
|
7a3408 |
+ </ip>
|
|
|
7a3408 |
+</network>
|
|
|
7a3408 |
diff --git a/tests/networkxml2xmltest.c b/tests/networkxml2xmltest.c
|
|
|
7a3408 |
index 290336e..8d60aa8 100644
|
|
|
7a3408 |
--- a/tests/networkxml2xmltest.c
|
|
|
7a3408 |
+++ b/tests/networkxml2xmltest.c
|
|
|
7a3408 |
@@ -99,6 +99,7 @@ mymain(void)
|
|
|
7a3408 |
DO_TEST("nat-network-dns-forward-plain");
|
|
|
7a3408 |
DO_TEST("nat-network-dns-forwarders");
|
|
|
7a3408 |
DO_TEST("nat-network-forward-nat-address");
|
|
|
7a3408 |
+ DO_TEST("nat-network-forward-nat-no-address");
|
|
|
7a3408 |
DO_TEST("8021Qbh-net");
|
|
|
7a3408 |
DO_TEST("direct-net");
|
|
|
7a3408 |
DO_TEST("host-bridge-net");
|
|
|
7a3408 |
--
|
|
|
7a3408 |
2.5.0
|
|
|
7a3408 |
|