On Thu, Jul 26, 2018 at 09:55:17AM +0200, Michal Privoznik wrote: > https://bugzilla.redhat.com/show_bug.cgi?id=1600468 > > If we are unable to read leases file (no matter what the reason > is), we return 0 - just like if there were no leases. However, > because we use virFileReadAll() an error is printed into the log. > Note that not all networks have leases file - only those for > which we start dnsmasq. > > Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> > --- > src/network/bridge_driver.c | 21 ++++++++++++++------- > 1 file changed, 14 insertions(+), 7 deletions(-) > > diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c > index a7826e9b63..5839021caf 100644 > --- a/src/network/bridge_driver.c > +++ b/src/network/bridge_driver.c > @@ -4235,13 +4235,20 @@ networkGetDHCPLeases(virNetworkPtr net, > custom_lease_file = networkDnsmasqLeaseFileNameCustom(driver, def->bridge); > > /* Read entire contents */ > - if ((custom_lease_file_len = virFileReadAll(custom_lease_file, > - VIR_NETWORK_DHCP_LEASE_FILE_SIZE_MAX, > - &lease_entries)) < 0) { > - /* Even though src/network/leaseshelper.c guarantees the existence of > - * leases file (even if no leases are present), and the control reaches > - * here, instead of reporting error, return 0 leases */ > - rv = 0; > + if ((custom_lease_file_len = virFileReadAllQuiet(custom_lease_file, > + VIR_NETWORK_DHCP_LEASE_FILE_SIZE_MAX, > + &lease_entries)) < 0) { > + /* Not all networks are guaranteed to have leases file. > + * Only those which run dnsmasq. Therefore, if we failed > + * to read the leases file, don't report error. Return 0 > + * leases instead. */ > + if (errno != ENOENT) { > + virReportSystemError(errno, > + _("Unable to read leases file: %s"), > + custom_lease_file); ^This is essentially a 'single-line' body, so the curly braces could be dropped. I'd also invert the condition, so as to comply with the guidelines and make the 'else' clause, in this case only optically, bigger. Regardless: Reviewed-by: Erik Skultety <eskultet@xxxxxxxxxx> > + } else { > + rv = 0; > + } > goto error; > } > > -- > 2.16.4 > > -- > libvir-list mailing list > libvir-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvir-list -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list