From: Michal Privoznik Date: Tue, 23 Apr 2019 14:44:59 +0000 (+0200) Subject: networkStartNetworkVirtual: Dissolve 'err4' label in 'error' X-Git-Tag: v5.4.0-rc1~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12288fae6b84b0f0f00332d94b805a56fab745a9;p=thirdparty%2Flibvirt.git networkStartNetworkVirtual: Dissolve 'err4' label in 'error' Signed-off-by: Michal Privoznik Reviewed-by: Erik Skultety --- diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index ef82a3e310..88e49969b5 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -2335,7 +2335,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr driver, virMacMapPtr macmap; char *macMapFile = NULL; int tapfd = -1; - pid_t dnsmasqPid; + bool dnsmasqStarted = false; /* Check to see if any network IP collides with an existing route */ if (networkCheckRouteCollision(def) < 0) @@ -2465,22 +2465,24 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr driver, networkStartDhcpDaemon(driver, obj) < 0) goto err3; + dnsmasqStarted = true; + /* start radvd if there are any ipv6 addresses */ if (v6present && networkStartRadvd(driver, obj) < 0) - goto err4; + goto error; /* dnsmasq does not wait for DAD to complete before daemonizing, * so we need to wait for it ourselves. */ if (v6present && networkWaitDadFinish(obj) < 0) - goto err4; + goto error; /* DAD has finished, dnsmasq is now bound to the * bridge's IPv6 address, so we can set the dummy tun down. */ if (tapfd >= 0) { if (virNetDevSetOnline(macTapIfName, false) < 0) - goto err4; + goto error; VIR_FORCE_CLOSE(tapfd); } @@ -2497,12 +2499,8 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr driver, if (def->bandwidth) virNetDevBandwidthClear(def->bridge); - err4: - if (!save_err) - virErrorPreserveLast(&save_err); - - dnsmasqPid = virNetworkObjGetDnsmasqPid(obj); - if (dnsmasqPid > 0) { + if (dnsmasqStarted) { + pid_t dnsmasqPid = virNetworkObjGetDnsmasqPid(obj); kill(dnsmasqPid, SIGTERM); virNetworkObjSetDnsmasqPid(obj, -1); }