summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2016-03-24 11:09:55 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2016-03-24 15:03:04 +0100
commit76b79df1555c4e8c05dee94bc3eb88bfb49f3fbf (patch)
tree1a0bcaecf9d72d7e3cae47e85440c238800a8334
parentfd971567b996f950aa784f9b3bd7a57423442e20 (diff)
downloadNetworkManager-76b79df1555c4e8c05dee94bc3eb88bfb49f3fbf.tar.gz
dhcp: don't fail assertions when a DHCP client is not available
If no configured client is available, gracefully fail the activation without throwing runtime errors.
-rw-r--r--src/dhcp-manager/nm-dhcp-manager.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/dhcp-manager/nm-dhcp-manager.c b/src/dhcp-manager/nm-dhcp-manager.c
index de7c895322..fe723e9684 100644
--- a/src/dhcp-manager/nm-dhcp-manager.c
+++ b/src/dhcp-manager/nm-dhcp-manager.c
@@ -212,7 +212,8 @@ client_start (NMDhcpManager *self,
priv = NM_DHCP_MANAGER_GET_PRIVATE (self);
/* Ensure we have a usable DHCP client */
- g_return_val_if_fail (priv->client_type != 0, NULL);
+ if (priv->client_type == G_TYPE_INVALID)
+ return NULL;
/* Kill any old client instance */
client = get_client_for_ifindex (self, ifindex, ipv6);
@@ -337,6 +338,7 @@ nm_dhcp_manager_get_lease_ip_configs (NMDhcpManager *self,
gboolean ipv6,
guint32 default_route_metric)
{
+ NMDhcpManagerPrivate *priv;
ClientDesc *desc;
g_return_val_if_fail (NM_IS_DHCP_MANAGER (self), NULL);
@@ -344,7 +346,11 @@ nm_dhcp_manager_get_lease_ip_configs (NMDhcpManager *self,
g_return_val_if_fail (ifindex >= -1, NULL);
g_return_val_if_fail (uuid != NULL, NULL);
- desc = find_client_desc (NULL, NM_DHCP_MANAGER_GET_PRIVATE (self)->client_type);
+ priv = NM_DHCP_MANAGER_GET_PRIVATE (self);
+ if (priv->client_type == G_TYPE_INVALID)
+ return NULL;
+
+ desc = find_client_desc (NULL, priv->client_type);
if (desc && desc->get_lease_configs_func)
return desc->get_lease_configs_func (iface, ifindex, uuid, ipv6, default_route_metric);
return NULL;