From 8b32c80df089a3612a0448c1a92abc2071d6b6a9 Mon Sep 17 00:00:00 2001 From: Gene Czarcinski Date: Thu, 6 Dec 2012 12:20:39 -0500 Subject: [PATCH] network: put dnsmasq parameters in conf-file instead of command line This patch changes how parameters are passed to dnsmasq. Instead of being on the command line, the parameters are put into a file (one parameter per line) and a commandline --conf-file= specifies the location of the file. The file is located in the same directory as the leases file. Putting the dnsmasq parameters into a configuration file allows them to be examined and more easily understood than examining the command lines displayed by "ps ax". This is especially true when a number of networks have been started. When the use of dnsmasq was originally done, the required command line was simple, but it has gotten more complicated over time and will likely become even more complicated in the future. Note: The test conf files have all been renamed .conf instead of .argv, and tests/networkxml2xmlargvdata was moved to tests/networkxml2xmlconfdata. --- src/network/bridge_driver.c | 191 +++++++++++------- src/network/bridge_driver.h | 13 +- tests/Makefile.am | 12 +- .../dhcp6-nat-network.argv | 15 -- tests/networkxml2argvdata/dhcp6-network.argv | 15 -- .../dhcp6host-routed-network.argv | 13 -- .../networkxml2argvdata/isolated-network.argv | 16 -- .../nat-network-dns-hosts.argv | 10 - .../nat-network-dns-srv-record-minimal.argv | 19 -- .../nat-network-dns-srv-record.argv | 14 -- .../nat-network-dns-txt-record.argv | 13 -- tests/networkxml2argvdata/nat-network.argv | 15 -- .../networkxml2argvdata/netboot-network.argv | 19 -- .../netboot-proxy-network.argv | 17 -- tests/networkxml2argvdata/routed-network.argv | 8 - .../dhcp6-nat-network.conf | 19 ++ .../dhcp6-nat-network.xml | 0 tests/networkxml2confdata/dhcp6-network.conf | 19 ++ .../dhcp6-network.xml | 0 .../dhcp6host-routed-network.conf | 17 ++ .../dhcp6host-routed-network.xml | 0 .../networkxml2confdata/isolated-network.conf | 20 ++ .../isolated-network.xml | 0 .../nat-network-dns-hosts.conf | 14 ++ .../nat-network-dns-hosts.xml | 0 .../nat-network-dns-srv-record-minimal.conf | 23 +++ .../nat-network-dns-srv-record-minimal.xml | 0 .../nat-network-dns-srv-record.conf | 18 ++ .../nat-network-dns-srv-record.xml | 0 .../nat-network-dns-txt-record.conf | 18 ++ .../nat-network-dns-txt-record.xml | 0 tests/networkxml2confdata/nat-network.conf | 19 ++ .../nat-network.xml | 0 .../networkxml2confdata/netboot-network.conf | 23 +++ .../netboot-network.xml | 0 .../netboot-proxy-network.conf | 21 ++ .../netboot-proxy-network.xml | 0 tests/networkxml2confdata/routed-network.conf | 12 ++ .../routed-network.xml | 0 ...rkxml2argvtest.c => networkxml2conftest.c} | 64 ++---- 40 files changed, 365 insertions(+), 312 deletions(-) delete mode 100644 tests/networkxml2argvdata/dhcp6-nat-network.argv delete mode 100644 tests/networkxml2argvdata/dhcp6-network.argv delete mode 100644 tests/networkxml2argvdata/dhcp6host-routed-network.argv delete mode 100644 tests/networkxml2argvdata/isolated-network.argv delete mode 100644 tests/networkxml2argvdata/nat-network-dns-hosts.argv delete mode 100644 tests/networkxml2argvdata/nat-network-dns-srv-record-minimal.argv delete mode 100644 tests/networkxml2argvdata/nat-network-dns-srv-record.argv delete mode 100644 tests/networkxml2argvdata/nat-network-dns-txt-record.argv delete mode 100644 tests/networkxml2argvdata/nat-network.argv delete mode 100644 tests/networkxml2argvdata/netboot-network.argv delete mode 100644 tests/networkxml2argvdata/netboot-proxy-network.argv delete mode 100644 tests/networkxml2argvdata/routed-network.argv create mode 100644 tests/networkxml2confdata/dhcp6-nat-network.conf rename tests/{networkxml2argvdata => networkxml2confdata}/dhcp6-nat-network.xml (100%) create mode 100644 tests/networkxml2confdata/dhcp6-network.conf rename tests/{networkxml2argvdata => networkxml2confdata}/dhcp6-network.xml (100%) create mode 100644 tests/networkxml2confdata/dhcp6host-routed-network.conf rename tests/{networkxml2argvdata => networkxml2confdata}/dhcp6host-routed-network.xml (100%) create mode 100644 tests/networkxml2confdata/isolated-network.conf rename tests/{networkxml2argvdata => networkxml2confdata}/isolated-network.xml (100%) create mode 100644 tests/networkxml2confdata/nat-network-dns-hosts.conf rename tests/{networkxml2argvdata => networkxml2confdata}/nat-network-dns-hosts.xml (100%) create mode 100644 tests/networkxml2confdata/nat-network-dns-srv-record-minimal.conf rename tests/{networkxml2argvdata => networkxml2confdata}/nat-network-dns-srv-record-minimal.xml (100%) create mode 100644 tests/networkxml2confdata/nat-network-dns-srv-record.conf rename tests/{networkxml2argvdata => networkxml2confdata}/nat-network-dns-srv-record.xml (100%) create mode 100644 tests/networkxml2confdata/nat-network-dns-txt-record.conf rename tests/{networkxml2argvdata => networkxml2confdata}/nat-network-dns-txt-record.xml (100%) create mode 100644 tests/networkxml2confdata/nat-network.conf rename tests/{networkxml2argvdata => networkxml2confdata}/nat-network.xml (100%) create mode 100644 tests/networkxml2confdata/netboot-network.conf rename tests/{networkxml2argvdata => networkxml2confdata}/netboot-network.xml (100%) create mode 100644 tests/networkxml2confdata/netboot-proxy-network.conf rename tests/{networkxml2argvdata => networkxml2confdata}/netboot-proxy-network.xml (100%) create mode 100644 tests/networkxml2confdata/routed-network.conf rename tests/{networkxml2argvdata => networkxml2confdata}/routed-network.xml (100%) rename tests/{networkxml2argvtest.c => networkxml2conftest.c} (62%) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index b8c8ba92dc..09680ff517 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -137,6 +137,16 @@ networkDnsmasqLeaseFileNameDefault(const char *netname) networkDnsmasqLeaseFileNameFunc networkDnsmasqLeaseFileName = networkDnsmasqLeaseFileNameDefault; +static char * +networkDnsmasqConfigFileName(const char *netname) +{ + char *conffile; + + ignore_value(virAsprintf(&conffile, DNSMASQ_STATE_DIR "/%s.conf", + netname)); + return conffile; +} + static char * networkRadvdPidfileBasename(const char *netname) { @@ -164,6 +174,7 @@ networkRemoveInactive(struct network_driver *driver, { char *leasefile = NULL; char *radvdconfigfile = NULL; + char *configfile = NULL; char *radvdpidbase = NULL; dnsmasqContext *dctx = NULL; virNetworkDefPtr def = virNetworkObjGetPersistentDef(net); @@ -183,9 +194,13 @@ networkRemoveInactive(struct network_driver *driver, if (!(radvdpidbase = networkRadvdPidfileBasename(def->name))) goto no_memory; + if (!(configfile = networkDnsmasqConfigFileName(def->name))) + goto no_memory; + /* dnsmasq */ dnsmasqDelete(dctx); unlink(leasefile); + unlink(configfile); /* radvd */ unlink(radvdconfigfile); @@ -198,6 +213,7 @@ networkRemoveInactive(struct network_driver *driver, cleanup: VIR_FREE(leasefile); + VIR_FREE(configfile); VIR_FREE(radvdconfigfile); VIR_FREE(radvdpidbase); dnsmasqContextFree(dctx); @@ -609,13 +625,14 @@ networkBuildDnsmasqHostsList(dnsmasqContext *dctx, } -static int -networkBuildDnsmasqArgv(virNetworkObjPtr network, +int +networkDnsmasqConfContents(virNetworkObjPtr network, const char *pidfile, - virCommandPtr cmd, + char **configstr, dnsmasqContext *dctx, dnsmasqCapsPtr caps ATTRIBUTE_UNUSED) { + virBuffer configbuf = VIR_BUFFER_INITIALIZER; int r, ret = -1; int nbleases = 0; int ii; @@ -627,46 +644,48 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, virNetworkIpDefPtr tmpipdef, ipdef, ipv4def, ipv6def; bool ipv6SLAAC; + *configstr = NULL; + /* - * NB, be careful about syntax for dnsmasq options in long format. + * All dnsmasq parameters are put into a configuration file, except the + * command line --conf-file=parameter which specifies the location of + * configuration file. * - * If the flag has a mandatory argument, it can be given using - * either syntax: - * - * --foo bar - * --foo=bar - * - * If the flag has a optional argument, it *must* be given using - * the syntax: - * - * --foo=bar - * - * It is hard to determine whether a flag is optional or not, - * without reading the dnsmasq source :-( The manpage is not - * very explicit on this. + * All dnsmasq conf-file parameters must be specified as "foo=bar" + * as oppose to "--foo bar" which was acceptable on the command line. */ /* * Needed to ensure dnsmasq uses same algorithm for processing * multiple namedriver entries in /etc/resolv.conf as GLibC. */ - virCommandAddArgList(cmd, "--strict-order", - "--domain-needed", - NULL); - if (network->def->domain) { - virCommandAddArgPair(cmd, "--domain", network->def->domain); - virCommandAddArg(cmd, "--expand-hosts"); - } - /* need to specify local even if no domain specified */ - virCommandAddArgFormat(cmd, "--local=/%s/", - network->def->domain ? network->def->domain : ""); + /* create dnsmasq config file appropriate for this network */ + virBufferAsprintf(&configbuf, + "##WARNING: THIS IS AN AUTO-GENERATED FILE. " + "CHANGES TO IT ARE LIKELY TO BE\n" + "##OVERWRITTEN AND LOST. Changes to this " + "configuration should be made using:\n" + "## virsh net-edit %s\n" + "## of other applications using the libvirt API.\n" + "##\n## dnsmasq conf file created by libvirt\n" + "strict-order\n" + "domain-needed\n", + network->def->name); - if (pidfile) - virCommandAddArgPair(cmd, "--pid-file", pidfile); + if (network->def->domain) { + virBufferAsprintf(&configbuf, + "domain=%s\n" + "expand-hosts\n", + network->def->domain); + } + /* need to specify local even if no domain specified */ + virBufferAsprintf(&configbuf, + "local=/%s/\n", + network->def->domain ? network->def->domain : ""); - /* *no* conf file */ - virCommandAddArg(cmd, "--conf-file="); + if (pidfile) + virBufferAsprintf(&configbuf, "pid-file=%s\n", pidfile); if (dnsmasqCapsGet(caps, DNSMASQ_CAPS_BIND_DYNAMIC)) { /* using --bind-dynamic with only --interface (no @@ -676,15 +695,14 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, * other than one of the virtual guests connected directly to * this network). This was added in response to CVE 2012-3411. */ - virCommandAddArgList(cmd, - "--bind-dynamic", - "--interface", network->def->bridge, - NULL); + virBufferAsprintf(&configbuf, + "bind-dynamic\n" + "interface=%s\n", + network->def->bridge); } else { - virCommandAddArgList(cmd, - "--bind-interfaces", - "--except-interface", "lo", - NULL); + virBufferAddLit(&configbuf, + "bind-interfaces\n" + "except-interface=lo\n"); /* * --interface does not actually work with dnsmasq < 2.47, * due to DAD for ipv6 addresses on the interface. @@ -701,7 +719,7 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, if (!ipaddr) goto cleanup; /* also part of CVE 2012-3411 - if the host's version of - * dnsmasq doesn't have --bind-dynamic, only allow listening on + * dnsmasq doesn't have bind-dynamic, only allow listening on * private/local IP addresses (see RFC1918/RFC3484/RFC4193) */ if (!virSocketAddrIsPrivate(&tmpipdef->address)) { @@ -710,7 +728,7 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Publicly routable address %s is prohibited. " "The version of dnsmasq on this host (%d.%d) doesn't " - "support the --bind-dynamic option, which is required " + "support the bind-dynamic option, which is required " "for safe operation on a publicly routable subnet " "(see CVE-2012-3411). You must either upgrade dnsmasq, " "or use a private/local subnet range for this network " @@ -718,27 +736,27 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, (int)version / 1000000, (int)(version % 1000000) / 1000); goto cleanup; } - virCommandAddArgList(cmd, "--listen-address", ipaddr, NULL); + virBufferAsprintf(&configbuf, "listen-address=%s\n", ipaddr); VIR_FREE(ipaddr); } } /* If this is an isolated network, set the default route option * (3) to be empty to avoid setting a default route that's - * guaranteed to not work, and set --no-resolv so that no dns + * guaranteed to not work, and set no-resolv so that no dns * requests are forwarded on to the dns server listed in the * host's /etc/resolv.conf (since this could be used as a channel * to build a connection to the outside). */ if (network->def->forward.type == VIR_NETWORK_FORWARD_NONE) { - virCommandAddArgList(cmd, "--dhcp-option=3", - "--no-resolv", NULL); + virBufferAddLit(&configbuf, "dhcp-option=3\n" + "no-resolv\n"); } for (ii = 0; ii < dns->ntxts; ii++) { - virCommandAddArgFormat(cmd, "--txt-record=%s,%s", - dns->txts[ii].name, - dns->txts[ii].value); + virBufferAsprintf(&configbuf, "txt-record=%s,%s\n", + dns->txts[ii].name, + dns->txts[ii].value); } for (ii = 0; ii < dns->nsrvs; ii++) { @@ -774,7 +792,7 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, goto cleanup; } - virCommandAddArgPair(cmd, "--srv-host", record); + virBufferAsprintf(&configbuf, "srv-host=%s\n", record); VIR_FREE(record); VIR_FREE(recordPort); VIR_FREE(recordWeight); @@ -845,8 +863,8 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, VIR_FREE(saddr); goto cleanup; } - virCommandAddArg(cmd, "--dhcp-range"); - virCommandAddArgFormat(cmd, "%s,%s", saddr, eaddr); + virBufferAsprintf(&configbuf, "dhcp-range=%s,%s\n", + saddr, eaddr); VIR_FREE(saddr); VIR_FREE(eaddr); nbleases += virSocketAddrGetRange(&ipdef->ranges[r].start, @@ -862,8 +880,7 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, char *bridgeaddr = virSocketAddrFormat(&ipdef->address); if (!bridgeaddr) goto cleanup; - virCommandAddArg(cmd, "--dhcp-range"); - virCommandAddArgFormat(cmd, "%s,static", bridgeaddr); + virBufferAsprintf(&configbuf, "dhcp-range=%s,static\n", bridgeaddr); VIR_FREE(bridgeaddr); } @@ -873,16 +890,14 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, /* Note: the following is IPv4 only */ if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) { if (ipdef->nranges || ipdef->nhosts) - virCommandAddArg(cmd, "--dhcp-no-override"); + virBufferAddLit(&configbuf, "dhcp-no-override\n"); if (ipdef->tftproot) { - virCommandAddArgList(cmd, "--enable-tftp", - "--tftp-root", ipdef->tftproot, - NULL); + virBufferAddLit(&configbuf, "enable-tftp\n"); + virBufferAsprintf(&configbuf, "tftp-root=%s\n", ipdef->tftproot); } if (ipdef->bootfile) { - virCommandAddArg(cmd, "--dhcp-boot"); if (VIR_SOCKET_ADDR_VALID(&ipdef->bootserver)) { char *bootserver = virSocketAddrFormat(&ipdef->bootserver); @@ -890,11 +905,11 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, virReportOOMError(); goto cleanup; } - virCommandAddArgFormat(cmd, "%s%s%s", + virBufferAsprintf(&configbuf, "dhcp-boot=%s%s%s\n", ipdef->bootfile, ",,", bootserver); VIR_FREE(bootserver); } else { - virCommandAddArg(cmd, ipdef->bootfile); + virBufferAsprintf(&configbuf, "dhcp-boot=%s\n", ipdef->bootfile); } } } @@ -907,9 +922,9 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, virReportOOMError(); goto cleanup; } - virCommandAddArgFormat(cmd, "--dhcp-leasefile=%s", leasefile); + virBufferAsprintf(&configbuf, "dhcp-leasefile=%s\n", leasefile); VIR_FREE(leasefile); - virCommandAddArgFormat(cmd, "--dhcp-lease-max=%d", nbleases); + virBufferAsprintf(&configbuf, "dhcp-lease-max=%d\n", nbleases); } /* this is done once per interface */ @@ -921,19 +936,19 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, * file to allow for runtime additions. */ if (ipv4def || ipv6def) - virCommandAddArgPair(cmd, "--dhcp-hostsfile", - dctx->hostsfile->path); + virBufferAsprintf(&configbuf, "dhcp-hostsfile=%s\n", + dctx->hostsfile->path); - /* Likewise, always create this file and put it on the commandline, - * to allow for runtime additions. + /* Likewise, always create this file and put it on the commandline, to allow for + * for runtime additions. */ - virCommandAddArgPair(cmd, "--addn-hosts", - dctx->addnhostsfile->path); + virBufferAsprintf(&configbuf, "addn-hosts=%s\n", + dctx->addnhostsfile->path); /* Are we doing RA instead of radvd? */ if (DNSMASQ_RA_SUPPORT(caps)) { if (ipv6def) - virCommandAddArg(cmd, "--enable-ra"); + virBufferAddLit(&configbuf, "enable-ra\n"); else { for (ii = 0; (ipdef = virNetworkDefGetIpByIndex(network->def, AF_INET6, ii)); @@ -942,17 +957,21 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, char *bridgeaddr = virSocketAddrFormat(&ipdef->address); if (!bridgeaddr) goto cleanup; - virCommandAddArgFormat(cmd, "--dhcp-range=%s,ra-only", - bridgeaddr); + virBufferAsprintf(&configbuf, + "dhcp-range=%s,ra-only\n", bridgeaddr); VIR_FREE(bridgeaddr); } } } } + if (!(*configstr = virBufferContentAndReset(&configbuf))) + goto cleanup; + ret = 0; cleanup: + virBufferFreeAndReset(&configbuf); VIR_FREE(record); VIR_FREE(recordPort); VIR_FREE(recordWeight); @@ -960,21 +979,41 @@ cleanup: return ret; } -int +/* build the dnsmasq command line */ +static int networkBuildDhcpDaemonCommandLine(virNetworkObjPtr network, virCommandPtr *cmdout, char *pidfile, dnsmasqContext *dctx, dnsmasqCapsPtr caps) { virCommandPtr cmd = NULL; int ret = -1; + char *configfile = NULL; + char *configstr = NULL; network->dnsmasqPid = -1; - cmd = virCommandNew(dnsmasqCapsGetBinaryPath(caps)); - if (networkBuildDnsmasqArgv(network, pidfile, cmd, dctx, caps) < 0) { + if (networkDnsmasqConfContents(network, pidfile, &configstr, dctx, caps) < 0) + goto cleanup; + if (!configstr) + goto cleanup; + + /* construct the filename */ + if (!(configfile = networkDnsmasqConfigFileName(network->def->name))) { + virReportOOMError(); goto cleanup; } + /* Write the file */ + if (virFileWriteStr(configfile, configstr, 0600) < 0) { + virReportSystemError(errno, + _("couldn't write dnsmasq config file '%s'"), + configfile); + goto cleanup; + } + + cmd = virCommandNew(dnsmasqCapsGetBinaryPath(caps)); + virCommandAddArgFormat(cmd, "--conf-file=%s", configfile); + if (cmdout) *cmdout = cmd; ret = 0; @@ -1298,7 +1337,7 @@ networkStartRadvd(struct network_driver *driver ATTRIBUTE_UNUSED, network->radvdPid = -1; /* Is dnsmasq handling RA? */ - if (DNSMASQ_RA_SUPPORT(driver->dnsmasqCaps)) { + if (DNSMASQ_RA_SUPPORT(driver->dnsmasqCaps)) { ret = 0; goto cleanup; } diff --git a/src/network/bridge_driver.h b/src/network/bridge_driver.h index 8c16bdd228..43fefc061d 100644 --- a/src/network/bridge_driver.h +++ b/src/network/bridge_driver.h @@ -46,18 +46,19 @@ int networkReleaseActualDevice(virDomainNetDefPtr iface) int networkGetNetworkAddress(const char *netname, char **netaddr) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); -int networkBuildDhcpDaemonCommandLine(virNetworkObjPtr network, - virCommandPtr *cmdout, char *pidfile, - dnsmasqContext *dctx, - dnsmasqCapsPtr caps) - ; +int networkDnsmasqConfContents(virNetworkObjPtr network, + const char *pidfile, + char **configstr, + dnsmasqContext *dctx, + dnsmasqCapsPtr caps); # else /* Define no-op replacements that don't drag in any link dependencies. */ # define networkAllocateActualDevice(iface) 0 # define networkNotifyActualDevice(iface) (iface=iface, 0) # define networkReleaseActualDevice(iface) (iface=iface, 0) # define networkGetNetworkAddress(netname, netaddr) (-2) -# define networkBuildDhcpDaemonCommandLine(network, cmdout, pidfile, dctx, caps) 0 +# define networkDnsmasqConfContents(network, pidfile, configstr, \ + dctx, caps) 0 # endif typedef char *(*networkDnsmasqLeaseFileNameFunc)(const char *netname); diff --git a/tests/Makefile.am b/tests/Makefile.am index 8435e1ab57..5fb26ad47e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -56,7 +56,7 @@ EXTRA_DIST = \ networkschematest \ networkxml2xmlin \ networkxml2xmlout \ - networkxml2argvdata \ + networkxml2confdata \ nodedevschemadata \ nodedevschematest \ nodeinfodata \ @@ -147,7 +147,7 @@ endif test_programs += networkxml2xmltest if WITH_NETWORK -test_programs += networkxml2argvtest +test_programs += networkxml2conftest endif if WITH_STORAGE_SHEEPDOG @@ -431,12 +431,12 @@ networkxml2xmltest_SOURCES = \ networkxml2xmltest_LDADD = $(LDADDS) if WITH_NETWORK -networkxml2argvtest_SOURCES = \ - networkxml2argvtest.c \ +networkxml2conftest_SOURCES = \ + networkxml2conftest.c \ testutils.c testutils.h -networkxml2argvtest_LDADD = ../src/libvirt_driver_network_impl.la $(LDADDS) +networkxml2conftest_LDADD = ../src/libvirt_driver_network_impl.la $(LDADDS) else -EXTRA_DIST += networkxml2argvtest.c +EXTRA_DIST += networkxml2conftest.c endif if WITH_STORAGE_SHEEPDOG diff --git a/tests/networkxml2argvdata/dhcp6-nat-network.argv b/tests/networkxml2argvdata/dhcp6-nat-network.argv deleted file mode 100644 index df8c507581..0000000000 --- a/tests/networkxml2argvdata/dhcp6-nat-network.argv +++ /dev/null @@ -1,15 +0,0 @@ -@DNSMASQ@ \ ---strict-order \ ---domain-needed \ ---local=// \ ---conf-file= \ ---bind-dynamic \ ---interface virbr0 \ ---dhcp-range 192.168.122.2,192.168.122.254 \ ---dhcp-no-override \ ---dhcp-range 2001:db8:ac10:fd01::1:10,2001:db8:ac10:fd01::1:ff \ ---dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases \ ---dhcp-lease-max=493 \ ---dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile \ ---addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts \ ---enable-ra\ diff --git a/tests/networkxml2argvdata/dhcp6-network.argv b/tests/networkxml2argvdata/dhcp6-network.argv deleted file mode 100644 index 059c4188e7..0000000000 --- a/tests/networkxml2argvdata/dhcp6-network.argv +++ /dev/null @@ -1,15 +0,0 @@ -@DNSMASQ@ \ ---strict-order \ ---domain-needed \ ---domain=mynet \ ---expand-hosts \ ---local=/mynet/ \ ---conf-file= \ ---bind-dynamic \ ---interface virbr0 \ ---dhcp-range 2001:db8:ac10:fd01::1:10,2001:db8:ac10:fd01::1:ff \ ---dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases \ ---dhcp-lease-max=240 \ ---dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile \ ---addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts \ ---enable-ra\ diff --git a/tests/networkxml2argvdata/dhcp6host-routed-network.argv b/tests/networkxml2argvdata/dhcp6host-routed-network.argv deleted file mode 100644 index 8f6d7d3b2d..0000000000 --- a/tests/networkxml2argvdata/dhcp6host-routed-network.argv +++ /dev/null @@ -1,13 +0,0 @@ -@DNSMASQ@ \ ---strict-order \ ---domain-needed \ ---local=// \ ---conf-file= \ ---bind-dynamic \ ---interface virbr1 \ ---dhcp-range 192.168.122.1,static \ ---dhcp-no-override \ ---dhcp-range 2001:db8:ac10:fd01::1,static \ ---dhcp-hostsfile=/var/lib/libvirt/dnsmasq/local.hostsfile \ ---addn-hosts=/var/lib/libvirt/dnsmasq/local.addnhosts \ ---enable-ra\ diff --git a/tests/networkxml2argvdata/isolated-network.argv b/tests/networkxml2argvdata/isolated-network.argv deleted file mode 100644 index 31633859bd..0000000000 --- a/tests/networkxml2argvdata/isolated-network.argv +++ /dev/null @@ -1,16 +0,0 @@ -@DNSMASQ@ \ ---strict-order \ ---domain-needed \ ---local=// \ ---conf-file= \ ---bind-interfaces \ ---except-interface lo \ ---listen-address 192.168.152.1 \ ---dhcp-option=3 \ ---no-resolv \ ---dhcp-range 192.168.152.2,192.168.152.254 \ ---dhcp-no-override \ ---dhcp-leasefile=/var/lib/libvirt/dnsmasq/private.leases \ ---dhcp-lease-max=253 \ ---dhcp-hostsfile=/var/lib/libvirt/dnsmasq/private.hostsfile \ ---addn-hosts=/var/lib/libvirt/dnsmasq/private.addnhosts\ diff --git a/tests/networkxml2argvdata/nat-network-dns-hosts.argv b/tests/networkxml2argvdata/nat-network-dns-hosts.argv deleted file mode 100644 index fee137f561..0000000000 --- a/tests/networkxml2argvdata/nat-network-dns-hosts.argv +++ /dev/null @@ -1,10 +0,0 @@ -@DNSMASQ@ \ ---strict-order \ ---domain-needed \ ---domain=example.com \ ---expand-hosts \ ---local=/example.com/ \ ---conf-file= \ ---bind-dynamic \ ---interface virbr0 \ ---addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts\ diff --git a/tests/networkxml2argvdata/nat-network-dns-srv-record-minimal.argv b/tests/networkxml2argvdata/nat-network-dns-srv-record-minimal.argv deleted file mode 100644 index a86b2d2d20..0000000000 --- a/tests/networkxml2argvdata/nat-network-dns-srv-record-minimal.argv +++ /dev/null @@ -1,19 +0,0 @@ -@DNSMASQ@ \ ---strict-order \ ---domain-needed \ ---local=// \ ---conf-file= \ ---bind-interfaces \ ---except-interface lo \ ---listen-address 192.168.122.1 \ ---listen-address 192.168.123.1 \ ---listen-address fc00:db8:ac10:fe01::1 \ ---listen-address fc00:db8:ac10:fd01::1 \ ---listen-address 10.24.10.1 \ ---srv-host=name.tcp.,,,, \ ---dhcp-range 192.168.122.2,192.168.122.254 \ ---dhcp-no-override \ ---dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases \ ---dhcp-lease-max=253 \ ---dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile \ ---addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts\ diff --git a/tests/networkxml2argvdata/nat-network-dns-srv-record.argv b/tests/networkxml2argvdata/nat-network-dns-srv-record.argv deleted file mode 100644 index e7ecaa502d..0000000000 --- a/tests/networkxml2argvdata/nat-network-dns-srv-record.argv +++ /dev/null @@ -1,14 +0,0 @@ -@DNSMASQ@ \ ---strict-order \ ---domain-needed \ ---local=// \ ---conf-file= \ ---bind-dynamic \ ---interface virbr0 \ ---srv-host=name.tcp.test-domain-name,.,1024,10,10 \ ---dhcp-range 192.168.122.2,192.168.122.254 \ ---dhcp-no-override \ ---dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases \ ---dhcp-lease-max=253 \ ---dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile \ ---addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts\ diff --git a/tests/networkxml2argvdata/nat-network-dns-txt-record.argv b/tests/networkxml2argvdata/nat-network-dns-txt-record.argv deleted file mode 100644 index 8ea00044f6..0000000000 --- a/tests/networkxml2argvdata/nat-network-dns-txt-record.argv +++ /dev/null @@ -1,13 +0,0 @@ -@DNSMASQ@ \ ---strict-order \ ---domain-needed \ ---local=// \ ---conf-file= \ ---bind-dynamic --interface virbr0 \ -'--txt-record=example,example value' \ ---dhcp-range 192.168.122.2,192.168.122.254 \ ---dhcp-no-override \ ---dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases \ ---dhcp-lease-max=253 \ ---dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile \ ---addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts\ diff --git a/tests/networkxml2argvdata/nat-network.argv b/tests/networkxml2argvdata/nat-network.argv deleted file mode 100644 index 578a5ff432..0000000000 --- a/tests/networkxml2argvdata/nat-network.argv +++ /dev/null @@ -1,15 +0,0 @@ -@DNSMASQ@ \ ---strict-order \ ---domain-needed \ ---local=// \ ---conf-file= \ ---bind-dynamic \ ---interface virbr0 \ ---dhcp-range 192.168.122.2,192.168.122.254 \ ---dhcp-no-override \ ---dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases \ ---dhcp-lease-max=253 \ ---dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile \ ---addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts \ ---dhcp-range=2001:db8:ac10:fe01::1,ra-only \ ---dhcp-range=2001:db8:ac10:fd01::1,ra-only\ diff --git a/tests/networkxml2argvdata/netboot-network.argv b/tests/networkxml2argvdata/netboot-network.argv deleted file mode 100644 index 11ed16a245..0000000000 --- a/tests/networkxml2argvdata/netboot-network.argv +++ /dev/null @@ -1,19 +0,0 @@ -@DNSMASQ@ \ ---strict-order \ ---domain-needed \ ---domain=example.com \ ---expand-hosts \ ---local=/example.com/ \ ---conf-file= \ ---bind-interfaces \ ---except-interface lo \ ---listen-address 192.168.122.1 \ ---dhcp-range 192.168.122.2,192.168.122.254 \ ---dhcp-no-override \ ---enable-tftp \ ---tftp-root /var/lib/tftproot \ ---dhcp-boot pxeboot.img \ ---dhcp-leasefile=/var/lib/libvirt/dnsmasq/netboot.leases \ ---dhcp-lease-max=253 \ ---dhcp-hostsfile=/var/lib/libvirt/dnsmasq/netboot.hostsfile \ ---addn-hosts=/var/lib/libvirt/dnsmasq/netboot.addnhosts\ diff --git a/tests/networkxml2argvdata/netboot-proxy-network.argv b/tests/networkxml2argvdata/netboot-proxy-network.argv deleted file mode 100644 index ea31a325e0..0000000000 --- a/tests/networkxml2argvdata/netboot-proxy-network.argv +++ /dev/null @@ -1,17 +0,0 @@ -@DNSMASQ@ \ ---strict-order \ ---domain-needed \ ---domain=example.com \ ---expand-hosts \ ---local=/example.com/ \ ---conf-file= \ ---bind-interfaces \ ---except-interface lo \ ---listen-address 192.168.122.1 \ ---dhcp-range 192.168.122.2,192.168.122.254 \ ---dhcp-no-override \ ---dhcp-boot pxeboot.img,,10.20.30.40 \ ---dhcp-leasefile=/var/lib/libvirt/dnsmasq/netboot.leases \ ---dhcp-lease-max=253 \ ---dhcp-hostsfile=/var/lib/libvirt/dnsmasq/netboot.hostsfile \ ---addn-hosts=/var/lib/libvirt/dnsmasq/netboot.addnhosts\ diff --git a/tests/networkxml2argvdata/routed-network.argv b/tests/networkxml2argvdata/routed-network.argv deleted file mode 100644 index b3fbf49ef0..0000000000 --- a/tests/networkxml2argvdata/routed-network.argv +++ /dev/null @@ -1,8 +0,0 @@ -@DNSMASQ@ \ ---strict-order \ ---domain-needed \ ---local=// \ ---conf-file= \ ---bind-dynamic \ ---interface virbr1 \ ---addn-hosts=/var/lib/libvirt/dnsmasq/local.addnhosts\ diff --git a/tests/networkxml2confdata/dhcp6-nat-network.conf b/tests/networkxml2confdata/dhcp6-nat-network.conf new file mode 100644 index 0000000000..3fa358a75f --- /dev/null +++ b/tests/networkxml2confdata/dhcp6-nat-network.conf @@ -0,0 +1,19 @@ +##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE +##OVERWRITTEN AND LOST. Changes to this configuration should be made using: +## virsh net-edit default +## of other applications using the libvirt API. +## +## dnsmasq conf file created by libvirt +strict-order +domain-needed +local=// +bind-dynamic +interface=virbr0 +dhcp-range=192.168.122.2,192.168.122.254 +dhcp-no-override +dhcp-range=2001:db8:ac10:fd01::1:10,2001:db8:ac10:fd01::1:ff +dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases +dhcp-lease-max=493 +dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile +addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts +enable-ra diff --git a/tests/networkxml2argvdata/dhcp6-nat-network.xml b/tests/networkxml2confdata/dhcp6-nat-network.xml similarity index 100% rename from tests/networkxml2argvdata/dhcp6-nat-network.xml rename to tests/networkxml2confdata/dhcp6-nat-network.xml diff --git a/tests/networkxml2confdata/dhcp6-network.conf b/tests/networkxml2confdata/dhcp6-network.conf new file mode 100644 index 0000000000..e3b2f8c9bc --- /dev/null +++ b/tests/networkxml2confdata/dhcp6-network.conf @@ -0,0 +1,19 @@ +##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE +##OVERWRITTEN AND LOST. Changes to this configuration should be made using: +## virsh net-edit default +## of other applications using the libvirt API. +## +## dnsmasq conf file created by libvirt +strict-order +domain-needed +domain=mynet +expand-hosts +local=/mynet/ +bind-dynamic +interface=virbr0 +dhcp-range=2001:db8:ac10:fd01::1:10,2001:db8:ac10:fd01::1:ff +dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases +dhcp-lease-max=240 +dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile +addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts +enable-ra diff --git a/tests/networkxml2argvdata/dhcp6-network.xml b/tests/networkxml2confdata/dhcp6-network.xml similarity index 100% rename from tests/networkxml2argvdata/dhcp6-network.xml rename to tests/networkxml2confdata/dhcp6-network.xml diff --git a/tests/networkxml2confdata/dhcp6host-routed-network.conf b/tests/networkxml2confdata/dhcp6host-routed-network.conf new file mode 100644 index 0000000000..4702cea5ed --- /dev/null +++ b/tests/networkxml2confdata/dhcp6host-routed-network.conf @@ -0,0 +1,17 @@ +##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE +##OVERWRITTEN AND LOST. Changes to this configuration should be made using: +## virsh net-edit local +## of other applications using the libvirt API. +## +## dnsmasq conf file created by libvirt +strict-order +domain-needed +local=// +bind-dynamic +interface=virbr1 +dhcp-range=192.168.122.1,static +dhcp-no-override +dhcp-range=2001:db8:ac10:fd01::1,static +dhcp-hostsfile=/var/lib/libvirt/dnsmasq/local.hostsfile +addn-hosts=/var/lib/libvirt/dnsmasq/local.addnhosts +enable-ra diff --git a/tests/networkxml2argvdata/dhcp6host-routed-network.xml b/tests/networkxml2confdata/dhcp6host-routed-network.xml similarity index 100% rename from tests/networkxml2argvdata/dhcp6host-routed-network.xml rename to tests/networkxml2confdata/dhcp6host-routed-network.xml diff --git a/tests/networkxml2confdata/isolated-network.conf b/tests/networkxml2confdata/isolated-network.conf new file mode 100644 index 0000000000..6e4b2691a2 --- /dev/null +++ b/tests/networkxml2confdata/isolated-network.conf @@ -0,0 +1,20 @@ +##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE +##OVERWRITTEN AND LOST. Changes to this configuration should be made using: +## virsh net-edit private +## of other applications using the libvirt API. +## +## dnsmasq conf file created by libvirt +strict-order +domain-needed +local=// +bind-interfaces +except-interface=lo +listen-address=192.168.152.1 +dhcp-option=3 +no-resolv +dhcp-range=192.168.152.2,192.168.152.254 +dhcp-no-override +dhcp-leasefile=/var/lib/libvirt/dnsmasq/private.leases +dhcp-lease-max=253 +dhcp-hostsfile=/var/lib/libvirt/dnsmasq/private.hostsfile +addn-hosts=/var/lib/libvirt/dnsmasq/private.addnhosts diff --git a/tests/networkxml2argvdata/isolated-network.xml b/tests/networkxml2confdata/isolated-network.xml similarity index 100% rename from tests/networkxml2argvdata/isolated-network.xml rename to tests/networkxml2confdata/isolated-network.xml diff --git a/tests/networkxml2confdata/nat-network-dns-hosts.conf b/tests/networkxml2confdata/nat-network-dns-hosts.conf new file mode 100644 index 0000000000..c50acd21e4 --- /dev/null +++ b/tests/networkxml2confdata/nat-network-dns-hosts.conf @@ -0,0 +1,14 @@ +##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE +##OVERWRITTEN AND LOST. Changes to this configuration should be made using: +## virsh net-edit default +## of other applications using the libvirt API. +## +## dnsmasq conf file created by libvirt +strict-order +domain-needed +domain=example.com +expand-hosts +local=/example.com/ +bind-dynamic +interface=virbr0 +addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts diff --git a/tests/networkxml2argvdata/nat-network-dns-hosts.xml b/tests/networkxml2confdata/nat-network-dns-hosts.xml similarity index 100% rename from tests/networkxml2argvdata/nat-network-dns-hosts.xml rename to tests/networkxml2confdata/nat-network-dns-hosts.xml diff --git a/tests/networkxml2confdata/nat-network-dns-srv-record-minimal.conf b/tests/networkxml2confdata/nat-network-dns-srv-record-minimal.conf new file mode 100644 index 0000000000..25af9c624d --- /dev/null +++ b/tests/networkxml2confdata/nat-network-dns-srv-record-minimal.conf @@ -0,0 +1,23 @@ +##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE +##OVERWRITTEN AND LOST. Changes to this configuration should be made using: +## virsh net-edit default +## of other applications using the libvirt API. +## +## dnsmasq conf file created by libvirt +strict-order +domain-needed +local=// +bind-interfaces +except-interface=lo +listen-address=192.168.122.1 +listen-address=192.168.123.1 +listen-address=fc00:db8:ac10:fe01::1 +listen-address=fc00:db8:ac10:fd01::1 +listen-address=10.24.10.1 +srv-host=name.tcp.,,,, +dhcp-range=192.168.122.2,192.168.122.254 +dhcp-no-override +dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases +dhcp-lease-max=253 +dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile +addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts diff --git a/tests/networkxml2argvdata/nat-network-dns-srv-record-minimal.xml b/tests/networkxml2confdata/nat-network-dns-srv-record-minimal.xml similarity index 100% rename from tests/networkxml2argvdata/nat-network-dns-srv-record-minimal.xml rename to tests/networkxml2confdata/nat-network-dns-srv-record-minimal.xml diff --git a/tests/networkxml2confdata/nat-network-dns-srv-record.conf b/tests/networkxml2confdata/nat-network-dns-srv-record.conf new file mode 100644 index 0000000000..777f03d880 --- /dev/null +++ b/tests/networkxml2confdata/nat-network-dns-srv-record.conf @@ -0,0 +1,18 @@ +##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE +##OVERWRITTEN AND LOST. Changes to this configuration should be made using: +## virsh net-edit default +## of other applications using the libvirt API. +## +## dnsmasq conf file created by libvirt +strict-order +domain-needed +local=// +bind-dynamic +interface=virbr0 +srv-host=name.tcp.test-domain-name,.,1024,10,10 +dhcp-range=192.168.122.2,192.168.122.254 +dhcp-no-override +dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases +dhcp-lease-max=253 +dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile +addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts diff --git a/tests/networkxml2argvdata/nat-network-dns-srv-record.xml b/tests/networkxml2confdata/nat-network-dns-srv-record.xml similarity index 100% rename from tests/networkxml2argvdata/nat-network-dns-srv-record.xml rename to tests/networkxml2confdata/nat-network-dns-srv-record.xml diff --git a/tests/networkxml2confdata/nat-network-dns-txt-record.conf b/tests/networkxml2confdata/nat-network-dns-txt-record.conf new file mode 100644 index 0000000000..75ed546ef6 --- /dev/null +++ b/tests/networkxml2confdata/nat-network-dns-txt-record.conf @@ -0,0 +1,18 @@ +##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE +##OVERWRITTEN AND LOST. Changes to this configuration should be made using: +## virsh net-edit default +## of other applications using the libvirt API. +## +## dnsmasq conf file created by libvirt +strict-order +domain-needed +local=// +bind-dynamic +interface=virbr0 +txt-record=example,example value +dhcp-range=192.168.122.2,192.168.122.254 +dhcp-no-override +dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases +dhcp-lease-max=253 +dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile +addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts diff --git a/tests/networkxml2argvdata/nat-network-dns-txt-record.xml b/tests/networkxml2confdata/nat-network-dns-txt-record.xml similarity index 100% rename from tests/networkxml2argvdata/nat-network-dns-txt-record.xml rename to tests/networkxml2confdata/nat-network-dns-txt-record.xml diff --git a/tests/networkxml2confdata/nat-network.conf b/tests/networkxml2confdata/nat-network.conf new file mode 100644 index 0000000000..f07456fc34 --- /dev/null +++ b/tests/networkxml2confdata/nat-network.conf @@ -0,0 +1,19 @@ +##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE +##OVERWRITTEN AND LOST. Changes to this configuration should be made using: +## virsh net-edit default +## of other applications using the libvirt API. +## +## dnsmasq conf file created by libvirt +strict-order +domain-needed +local=// +bind-dynamic +interface=virbr0 +dhcp-range=192.168.122.2,192.168.122.254 +dhcp-no-override +dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases +dhcp-lease-max=253 +dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile +addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts +dhcp-range=2001:db8:ac10:fe01::1,ra-only +dhcp-range=2001:db8:ac10:fd01::1,ra-only diff --git a/tests/networkxml2argvdata/nat-network.xml b/tests/networkxml2confdata/nat-network.xml similarity index 100% rename from tests/networkxml2argvdata/nat-network.xml rename to tests/networkxml2confdata/nat-network.xml diff --git a/tests/networkxml2confdata/netboot-network.conf b/tests/networkxml2confdata/netboot-network.conf new file mode 100644 index 0000000000..bda7e2d5cd --- /dev/null +++ b/tests/networkxml2confdata/netboot-network.conf @@ -0,0 +1,23 @@ +##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE +##OVERWRITTEN AND LOST. Changes to this configuration should be made using: +## virsh net-edit netboot +## of other applications using the libvirt API. +## +## dnsmasq conf file created by libvirt +strict-order +domain-needed +domain=example.com +expand-hosts +local=/example.com/ +bind-interfaces +except-interface=lo +listen-address=192.168.122.1 +dhcp-range=192.168.122.2,192.168.122.254 +dhcp-no-override +enable-tftp +tftp-root=/var/lib/tftproot +dhcp-boot=pxeboot.img +dhcp-leasefile=/var/lib/libvirt/dnsmasq/netboot.leases +dhcp-lease-max=253 +dhcp-hostsfile=/var/lib/libvirt/dnsmasq/netboot.hostsfile +addn-hosts=/var/lib/libvirt/dnsmasq/netboot.addnhosts diff --git a/tests/networkxml2argvdata/netboot-network.xml b/tests/networkxml2confdata/netboot-network.xml similarity index 100% rename from tests/networkxml2argvdata/netboot-network.xml rename to tests/networkxml2confdata/netboot-network.xml diff --git a/tests/networkxml2confdata/netboot-proxy-network.conf b/tests/networkxml2confdata/netboot-proxy-network.conf new file mode 100644 index 0000000000..42b8dfaed9 --- /dev/null +++ b/tests/networkxml2confdata/netboot-proxy-network.conf @@ -0,0 +1,21 @@ +##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE +##OVERWRITTEN AND LOST. Changes to this configuration should be made using: +## virsh net-edit netboot +## of other applications using the libvirt API. +## +## dnsmasq conf file created by libvirt +strict-order +domain-needed +domain=example.com +expand-hosts +local=/example.com/ +bind-interfaces +except-interface=lo +listen-address=192.168.122.1 +dhcp-range=192.168.122.2,192.168.122.254 +dhcp-no-override +dhcp-boot=pxeboot.img,,10.20.30.40 +dhcp-leasefile=/var/lib/libvirt/dnsmasq/netboot.leases +dhcp-lease-max=253 +dhcp-hostsfile=/var/lib/libvirt/dnsmasq/netboot.hostsfile +addn-hosts=/var/lib/libvirt/dnsmasq/netboot.addnhosts diff --git a/tests/networkxml2argvdata/netboot-proxy-network.xml b/tests/networkxml2confdata/netboot-proxy-network.xml similarity index 100% rename from tests/networkxml2argvdata/netboot-proxy-network.xml rename to tests/networkxml2confdata/netboot-proxy-network.xml diff --git a/tests/networkxml2confdata/routed-network.conf b/tests/networkxml2confdata/routed-network.conf new file mode 100644 index 0000000000..f5f9680027 --- /dev/null +++ b/tests/networkxml2confdata/routed-network.conf @@ -0,0 +1,12 @@ +##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE +##OVERWRITTEN AND LOST. Changes to this configuration should be made using: +## virsh net-edit local +## of other applications using the libvirt API. +## +## dnsmasq conf file created by libvirt +strict-order +domain-needed +local=// +bind-dynamic +interface=virbr1 +addn-hosts=/var/lib/libvirt/dnsmasq/local.addnhosts diff --git a/tests/networkxml2argvdata/routed-network.xml b/tests/networkxml2confdata/routed-network.xml similarity index 100% rename from tests/networkxml2argvdata/routed-network.xml rename to tests/networkxml2confdata/routed-network.xml diff --git a/tests/networkxml2argvtest.c b/tests/networkxml2conftest.c similarity index 62% rename from tests/networkxml2argvtest.c rename to tests/networkxml2conftest.c index a020db910b..1888465eb1 100644 --- a/tests/networkxml2argvtest.c +++ b/tests/networkxml2conftest.c @@ -15,42 +15,11 @@ #include "memory.h" #include "network/bridge_driver.h" -/* Replace all occurrences of @token in @buf by @replacement and adjust size of - * @buf accordingly. Returns 0 on success and -1 on out-of-memory errors. */ -static int replaceTokens(char **buf, const char *token, const char *replacement) { - size_t token_start, token_end; - size_t buf_len, rest_len; - const size_t token_len = strlen(token); - const size_t replacement_len = strlen(replacement); - const int diff = replacement_len - token_len; - - buf_len = rest_len = strlen(*buf) + 1; - token_end = 0; - for (;;) { - char *match = strstr(*buf + token_end, token); - if (match == NULL) - break; - token_start = match - *buf; - rest_len -= token_start + token_len - token_end; - token_end = token_start + token_len; - buf_len += diff; - if (diff > 0) - if (VIR_REALLOC_N(*buf, buf_len) < 0) - return -1; - if (diff != 0) - memmove(*buf + token_end + diff, *buf + token_end, rest_len); - memcpy(*buf + token_start, replacement, replacement_len); - token_end += diff; - } - /* if diff < 0, we could shrink the buffer here... */ - return 0; -} - static int -testCompareXMLToArgvFiles(const char *inxml, const char *outargv, dnsmasqCapsPtr caps) +testCompareXMLToConfFiles(const char *inxml, const char *outconf, dnsmasqCapsPtr caps) { char *inXmlData = NULL; - char *outArgvData = NULL; + char *outConfData = NULL; char *actual = NULL; int ret = -1; virNetworkDefPtr dev = NULL; @@ -62,10 +31,7 @@ testCompareXMLToArgvFiles(const char *inxml, const char *outargv, dnsmasqCapsPtr if (virtTestLoadFile(inxml, &inXmlData) < 0) goto fail; - if (virtTestLoadFile(outargv, &outArgvData) < 0) - goto fail; - - if (replaceTokens(&outArgvData, "@DNSMASQ@", DNSMASQ)) + if (virtTestLoadFile(outconf, &outConfData) < 0) goto fail; if (!(dev = virNetworkDefParseString(inXmlData))) @@ -80,14 +46,12 @@ testCompareXMLToArgvFiles(const char *inxml, const char *outargv, dnsmasqCapsPtr if (dctx == NULL) goto fail; - if (networkBuildDhcpDaemonCommandLine(obj, &cmd, pidfile, dctx, caps) < 0) + if (networkDnsmasqConfContents(obj, pidfile, &actual, + dctx, caps) < 0) goto fail; - if (!(actual = virCommandToString(cmd))) - goto fail; - - if (STRNEQ(outArgvData, actual)) { - virtTestDifference(stderr, outArgvData, actual); + if (STRNEQ(outConfData, actual)) { + virtTestDifference(stderr, outConfData, actual); goto fail; } @@ -95,7 +59,7 @@ testCompareXMLToArgvFiles(const char *inxml, const char *outargv, dnsmasqCapsPtr fail: VIR_FREE(inXmlData); - VIR_FREE(outArgvData); + VIR_FREE(outConfData); VIR_FREE(actual); VIR_FREE(pidfile); virCommandFree(cmd); @@ -110,21 +74,21 @@ typedef struct { } testInfo; static int -testCompareXMLToArgvHelper(const void *data) +testCompareXMLToConfHelper(const void *data) { int result = -1; const testInfo *info = data; char *inxml = NULL; char *outxml = NULL; - if (virAsprintf(&inxml, "%s/networkxml2argvdata/%s.xml", + if (virAsprintf(&inxml, "%s/networkxml2confdata/%s.xml", abs_srcdir, info->name) < 0 || - virAsprintf(&outxml, "%s/networkxml2argvdata/%s.argv", + virAsprintf(&outxml, "%s/networkxml2confdata/%s.conf", abs_srcdir, info->name) < 0) { goto cleanup; } - result = testCompareXMLToArgvFiles(inxml, outxml, info->caps); + result = testCompareXMLToConfFiles(inxml, outxml, info->caps); cleanup: VIR_FREE(inxml); @@ -163,8 +127,8 @@ mymain(void) \ info.name = xname; \ info.caps = xcaps; \ - if (virtTestRun("Network XML-2-Argv " xname, \ - 1, testCompareXMLToArgvHelper, &info) < 0) { \ + if (virtTestRun("Network XML-2-Conf " xname, \ + 1, testCompareXMLToConfHelper, &info) < 0) { \ ret = -1; \ } \ } while (0)