dhcp: minor refactoring return paths in NMDhcpDhclient.get_duid()

This commit is contained in:
Thomas Haller 2018-10-24 16:43:13 +02:00
parent b833d68d68
commit d6d2b7296f
2 changed files with 12 additions and 13 deletions

View file

@ -548,6 +548,7 @@ error:
#define DUID_PREFIX "default-duid \"" #define DUID_PREFIX "default-duid \""
/* Beware: @error may be unset even if the function returns %NULL. */
GBytes * GBytes *
nm_dhcp_dhclient_read_duid (const char *leasefile, GError **error) nm_dhcp_dhclient_read_duid (const char *leasefile, GError **error)
{ {

View file

@ -619,7 +619,7 @@ get_duid (NMDhcpClient *client)
NMDhcpDhclient *self = NM_DHCP_DHCLIENT (client); NMDhcpDhclient *self = NM_DHCP_DHCLIENT (client);
NMDhcpDhclientPrivate *priv = NM_DHCP_DHCLIENT_GET_PRIVATE (self); NMDhcpDhclientPrivate *priv = NM_DHCP_DHCLIENT_GET_PRIVATE (self);
GBytes *duid = NULL; GBytes *duid = NULL;
char *leasefile; gs_free char *leasefile = NULL;
GError *error = NULL; GError *error = NULL;
/* Look in interface-specific leasefile first for backwards compat */ /* Look in interface-specific leasefile first for backwards compat */
@ -630,25 +630,23 @@ get_duid (NMDhcpClient *client)
if (leasefile) { if (leasefile) {
_LOGD ("looking for DUID in '%s'", leasefile); _LOGD ("looking for DUID in '%s'", leasefile);
duid = nm_dhcp_dhclient_read_duid (leasefile, &error); duid = nm_dhcp_dhclient_read_duid (leasefile, &error);
if (error) { if (error) {
_LOGW ("failed to read leasefile '%s': %s", _LOGW ("failed to read leasefile '%s': %s",
leasefile, error->message); leasefile, error->message);
g_clear_error (&error); g_clear_error (&error);
} }
g_free (leasefile); if (duid)
return duid;
} }
if (!duid) { /* Otherwise read the default machine-wide DUID */
/* Otherwise read the default machine-wide DUID */ _LOGD ("looking for default DUID in '%s'", priv->def_leasefile);
_LOGD ("looking for default DUID in '%s'", priv->def_leasefile); duid = nm_dhcp_dhclient_read_duid (priv->def_leasefile, &error);
duid = nm_dhcp_dhclient_read_duid (priv->def_leasefile, &error); if (error) {
if (error) { _LOGW ("failed to read leasefile '%s': %s",
_LOGW ("failed to read leasefile '%s': %s", priv->def_leasefile,
priv->def_leasefile, error->message);
error->message); g_clear_error (&error);
g_clear_error (&error);
}
} }
return duid; return duid;