diff options
author | Thomas Haller <thaller@redhat.com> | 2014-06-11 10:53:58 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2014-06-11 11:09:41 +0200 |
commit | 59a0012e1fe1be244b95b9184bdf0111958109ad (patch) | |
tree | dc3c441ab91d80699583dc926f0ee27445b75794 | |
parent | 0a4a079e5d6b9aa8c606c2a3444abf027e52ffbf (diff) | |
download | NetworkManager-th/NMPlatformHwAddress.tar.gz |
dhcp: refactor using NMPlatformHwAddressth/wip/NMPlatformHwAddressth/NMPlatformHwAddress
Signed-off-by: Thomas Haller <thaller@redhat.com>
-rw-r--r-- | src/devices/nm-device.c | 15 | ||||
-rw-r--r-- | src/dhcp-manager/nm-dhcp-client.c | 12 | ||||
-rw-r--r-- | src/dhcp-manager/nm-dhcp-manager.c | 15 | ||||
-rw-r--r-- | src/dhcp-manager/nm-dhcp-manager.h | 5 |
4 files changed, 20 insertions, 27 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 5f67493e94..5630d3f14f 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -2756,7 +2756,6 @@ dhcp4_start (NMDevice *self, { NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); NMSettingIP4Config *s_ip4; - GByteArray *tmp; s_ip4 = nm_connection_get_setting_ip4_config (connection); @@ -2765,22 +2764,17 @@ dhcp4_start (NMDevice *self, g_object_unref (priv->dhcp4_config); priv->dhcp4_config = nm_dhcp4_config_new (); - tmp = nm_platform_hw_address_to_byte_array (&priv->hw_addr); - /* Begin DHCP on the interface */ g_warn_if_fail (priv->dhcp4_client == NULL); priv->dhcp4_client = nm_dhcp_manager_start_ip4 (nm_dhcp_manager_get (), nm_device_get_ip_iface (self), - tmp, + &priv->hw_addr, nm_connection_get_uuid (connection), nm_device_get_priority (self), s_ip4, priv->dhcp_timeout, priv->dhcp_anycast_address); - if (tmp) - g_byte_array_free (tmp, TRUE); - if (!priv->dhcp4_client) { *reason = NM_DEVICE_STATE_REASON_DHCP_START_FAILED; return NM_ACT_STAGE_RETURN_FAILURE; @@ -3221,7 +3215,6 @@ dhcp6_start (NMDevice *self, NMSettingIP6Config *s_ip6; NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); NMActStageReturn ret = NM_ACT_STAGE_RETURN_FAILURE; - GByteArray *tmp; if (!connection) { connection = nm_device_get_connection (self); @@ -3241,19 +3234,15 @@ dhcp6_start (NMDevice *self, priv->dhcp6_ip6_config = NULL; } - tmp = nm_platform_hw_address_to_byte_array (&priv->hw_addr); - priv->dhcp6_client = nm_dhcp_manager_start_ip6 (nm_dhcp_manager_get (), nm_device_get_ip_iface (self), - tmp, + &priv->hw_addr, nm_connection_get_uuid (connection), nm_device_get_priority (self), nm_connection_get_setting_ip6_config (connection), priv->dhcp_timeout, priv->dhcp_anycast_address, (dhcp_opt == NM_RDISC_DHCP_LEVEL_OTHERCONF) ? TRUE : FALSE); - if (tmp) - g_byte_array_free (tmp, TRUE); if (priv->dhcp6_client) { priv->dhcp6_state_sigid = g_signal_connect (priv->dhcp6_client, diff --git a/src/dhcp-manager/nm-dhcp-client.c b/src/dhcp-manager/nm-dhcp-client.c index 03c11c74d4..2ee5ce9f4e 100644 --- a/src/dhcp-manager/nm-dhcp-client.c +++ b/src/dhcp-manager/nm-dhcp-client.c @@ -36,7 +36,7 @@ typedef struct { char * iface; - GByteArray * hwaddr; + NMPlatformHwAddress hwaddr; gboolean ipv6; char * uuid; guint priority; @@ -1504,7 +1504,7 @@ get_property (GObject *object, guint prop_id, g_value_set_string (value, priv->iface); break; case PROP_HWADDR: - g_value_set_boxed (value, priv->hwaddr); + g_value_take_boxed (value, nm_platform_hw_address_to_byte_array (&priv->hwaddr)); break; case PROP_IPV6: g_value_set_boolean (value, priv->ipv6); @@ -1537,7 +1537,8 @@ set_property (GObject *object, guint prop_id, break; case PROP_HWADDR: /* construct only */ - priv->hwaddr = g_value_dup_boxed (value); + nm_platform_hw_address_set_byte_array (&priv->hwaddr, + g_value_get_boxed (value)); break; case PROP_IPV6: /* construct-only */ @@ -1582,11 +1583,6 @@ dispose (GObject *object) } g_clear_pointer (&priv->iface, g_free); - if (priv->hwaddr) { - g_byte_array_free (priv->hwaddr, TRUE); - priv->hwaddr = NULL; - } - if (priv->duid) { g_byte_array_free (priv->duid, TRUE); priv->duid = NULL; diff --git a/src/dhcp-manager/nm-dhcp-manager.c b/src/dhcp-manager/nm-dhcp-manager.c index ab6966cbb6..32bae412c0 100644 --- a/src/dhcp-manager/nm-dhcp-manager.c +++ b/src/dhcp-manager/nm-dhcp-manager.c @@ -382,7 +382,7 @@ add_client (NMDHCPManager *self, NMDHCPClient *client) static NMDHCPClient * client_start (NMDHCPManager *self, const char *iface, - const GByteArray *hwaddr, + const NMPlatformHwAddress *hwaddr, const char *uuid, guint priority, gboolean ipv6, @@ -395,6 +395,7 @@ client_start (NMDHCPManager *self, NMDHCPManagerPrivate *priv; NMDHCPClient *client; gboolean success = FALSE; + GByteArray *hwaddr_tmp = NULL; g_return_val_if_fail (self, NULL); g_return_val_if_fail (NM_IS_DHCP_MANAGER (self), NULL); @@ -413,15 +414,21 @@ client_start (NMDHCPManager *self, remove_client (self, client); } + hwaddr_tmp = hwaddr ? nm_platform_hw_address_to_byte_array (hwaddr) : NULL; + /* And make a new one */ client = g_object_new (priv->client_type, NM_DHCP_CLIENT_INTERFACE, iface, - NM_DHCP_CLIENT_HWADDR, hwaddr, + NM_DHCP_CLIENT_HWADDR, hwaddr_tmp, NM_DHCP_CLIENT_IPV6, ipv6, NM_DHCP_CLIENT_UUID, uuid, NM_DHCP_CLIENT_PRIORITY, priority, NM_DHCP_CLIENT_TIMEOUT, timeout ? timeout : DHCP_TIMEOUT, NULL); + + if (hwaddr_tmp) + g_byte_array_free (hwaddr_tmp, TRUE); + g_return_val_if_fail (client != NULL, NULL); add_client (self, client); @@ -452,7 +459,7 @@ get_send_hostname (NMDHCPManager *self, const char *setting_hostname) NMDHCPClient * nm_dhcp_manager_start_ip4 (NMDHCPManager *self, const char *iface, - const GByteArray *hwaddr, + const NMPlatformHwAddress *hwaddr, const char *uuid, guint priority, NMSettingIP4Config *s_ip4, @@ -481,7 +488,7 @@ nm_dhcp_manager_start_ip4 (NMDHCPManager *self, NMDHCPClient * nm_dhcp_manager_start_ip6 (NMDHCPManager *self, const char *iface, - const GByteArray *hwaddr, + const NMPlatformHwAddress *hwaddr, const char *uuid, guint priority, NMSettingIP6Config *s_ip6, diff --git a/src/dhcp-manager/nm-dhcp-manager.h b/src/dhcp-manager/nm-dhcp-manager.h index efdd43788b..5141b72391 100644 --- a/src/dhcp-manager/nm-dhcp-manager.h +++ b/src/dhcp-manager/nm-dhcp-manager.h @@ -31,6 +31,7 @@ #include "nm-dhcp-client.h" #include "nm-ip4-config.h" #include "nm-dhcp4-config.h" +#include "nm-platform.h" typedef enum { NM_DHCP_MANAGER_ERROR_BAD_CLIENT = 0, /*< nick=BadClient >*/ @@ -66,7 +67,7 @@ void nm_dhcp_manager_set_default_hostname (NMDHCPManager *manager, NMDHCPClient * nm_dhcp_manager_start_ip4 (NMDHCPManager *manager, const char *iface, - const GByteArray *hwaddr, + const NMPlatformHwAddress *hwaddr, const char *uuid, guint priority, NMSettingIP4Config *s_ip4, @@ -75,7 +76,7 @@ NMDHCPClient * nm_dhcp_manager_start_ip4 (NMDHCPManager *manager, NMDHCPClient * nm_dhcp_manager_start_ip6 (NMDHCPManager *manager, const char *iface, - const GByteArray *hwaddr, + const NMPlatformHwAddress *hwaddr, const char *uuid, guint priority, NMSettingIP6Config *s_ip6, |