mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-11 09:17:52 +03:00
net: Move creation of dnsmasq hosts file to function starting dnsmasq
The hosts file was created in the network definition function. This patch moves the place the file is being created to the point where dnsmasq is being started.
This commit is contained in:
parent
a3258c0eb9
commit
23ae3fe425
@ -846,6 +846,8 @@ networkStartDhcpDaemon(virNetworkObjPtr network)
|
||||
char *pidfile = NULL;
|
||||
int ret = -1;
|
||||
dnsmasqContext *dctx = NULL;
|
||||
virNetworkIpDefPtr ipdef;
|
||||
int i;
|
||||
|
||||
if (!virNetworkDefGetIpByIndex(network->def, AF_UNSPEC, 0)) {
|
||||
/* no IPv6 addresses, so we don't need to run radvd */
|
||||
@ -886,6 +888,18 @@ networkStartDhcpDaemon(virNetworkObjPtr network)
|
||||
if (ret < 0)
|
||||
goto cleanup;
|
||||
|
||||
/* populate dnsmasq hosts file */
|
||||
for (i = 0; (ipdef = virNetworkDefGetIpByIndex(network->def, AF_UNSPEC, i)); i++) {
|
||||
if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET) &&
|
||||
(ipdef->nranges || ipdef->nhosts)) {
|
||||
if (networkBuildDnsmasqHostsfile(dctx, ipdef,
|
||||
network->def->dns) < 0)
|
||||
goto cleanup;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ret = dnsmasqSave(dctx);
|
||||
if (ret < 0)
|
||||
goto cleanup;
|
||||
@ -2742,7 +2756,6 @@ static virNetworkPtr networkDefine(virConnectPtr conn, const char *xml) {
|
||||
virNetworkObjPtr network = NULL;
|
||||
virNetworkPtr ret = NULL;
|
||||
int ii;
|
||||
dnsmasqContext* dctx = NULL;
|
||||
|
||||
networkDriverLock(driver);
|
||||
|
||||
@ -2799,21 +2812,12 @@ static virNetworkPtr networkDefine(virConnectPtr conn, const char *xml) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (ipv4def) {
|
||||
dctx = dnsmasqContextNew(def->name, DNSMASQ_STATE_DIR);
|
||||
if (dctx == NULL ||
|
||||
networkBuildDnsmasqHostsfile(dctx, ipv4def, def->dns) < 0 ||
|
||||
dnsmasqSave(dctx) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
VIR_INFO("Defining network '%s'", def->name);
|
||||
ret = virGetNetwork(conn, def->name, def->uuid);
|
||||
|
||||
cleanup:
|
||||
if (freeDef)
|
||||
virNetworkDefFree(def);
|
||||
dnsmasqContextFree(dctx);
|
||||
if (network)
|
||||
virNetworkObjUnlock(network);
|
||||
networkDriverUnlock(driver);
|
||||
|
Loading…
Reference in New Issue
Block a user