dhcp: pass IPv6 privacy preference to client class

This commit is contained in:
Dan Williams
2014-07-08 11:37:38 -05:00
parent 24c1523b51
commit a1c86a9a27
7 changed files with 22 additions and 9 deletions

View File

@@ -3239,7 +3239,8 @@ dhcp6_start (NMDevice *self,
nm_setting_ip6_config_get_dhcp_hostname (s_ip6), nm_setting_ip6_config_get_dhcp_hostname (s_ip6),
priv->dhcp_timeout, priv->dhcp_timeout,
priv->dhcp_anycast_address, priv->dhcp_anycast_address,
(dhcp_opt == NM_RDISC_DHCP_LEVEL_OTHERCONF) ? TRUE : FALSE); (dhcp_opt == NM_RDISC_DHCP_LEVEL_OTHERCONF) ? TRUE : FALSE,
nm_setting_ip6_config_get_ip6_privacy (s_ip6));
if (tmp) if (tmp)
g_byte_array_free (tmp, TRUE); g_byte_array_free (tmp, TRUE);

View File

@@ -473,7 +473,8 @@ gboolean
nm_dhcp_client_start_ip6 (NMDHCPClient *self, nm_dhcp_client_start_ip6 (NMDHCPClient *self,
GByteArray *dhcp_anycast_addr, GByteArray *dhcp_anycast_addr,
const char *hostname, const char *hostname,
gboolean info_only) gboolean info_only,
NMSettingIP6ConfigPrivacy privacy)
{ {
NMDHCPClientPrivate *priv; NMDHCPClientPrivate *priv;
char *escaped; char *escaped;
@@ -506,6 +507,7 @@ nm_dhcp_client_start_ip6 (NMDHCPClient *self,
dhcp_anycast_addr, dhcp_anycast_addr,
hostname, hostname,
info_only, info_only,
privacy,
priv->duid); priv->duid);
} }

View File

@@ -72,6 +72,7 @@ typedef struct {
GByteArray *anycast_addr, GByteArray *anycast_addr,
const char *hostname, const char *hostname,
gboolean info_only, gboolean info_only,
NMSettingIP6ConfigPrivacy privacy,
const GByteArray *duid); const GByteArray *duid);
void (*stop) (NMDHCPClient *self, void (*stop) (NMDHCPClient *self,
@@ -116,7 +117,8 @@ gboolean nm_dhcp_client_start_ip4 (NMDHCPClient *self,
gboolean nm_dhcp_client_start_ip6 (NMDHCPClient *self, gboolean nm_dhcp_client_start_ip6 (NMDHCPClient *self,
GByteArray *dhcp_anycast_addr, GByteArray *dhcp_anycast_addr,
const char *hostname, const char *hostname,
gboolean info_only); gboolean info_only,
NMSettingIP6ConfigPrivacy privacy);
void nm_dhcp_client_stop (NMDHCPClient *self, gboolean release); void nm_dhcp_client_stop (NMDHCPClient *self, gboolean release);

View File

@@ -500,6 +500,7 @@ ip6_start (NMDHCPClient *client,
GByteArray *dhcp_anycast_addr, GByteArray *dhcp_anycast_addr,
const char *hostname, const char *hostname,
gboolean info_only, gboolean info_only,
NMSettingIP6ConfigPrivacy privacy,
const GByteArray *duid) const GByteArray *duid)
{ {
NMDHCPDhclientPrivate *priv = NM_DHCP_DHCLIENT_GET_PRIVATE (client); NMDHCPDhclientPrivate *priv = NM_DHCP_DHCLIENT_GET_PRIVATE (client);

View File

@@ -172,6 +172,7 @@ ip6_start (NMDHCPClient *client,
GByteArray *dhcp_anycast_addr, GByteArray *dhcp_anycast_addr,
const char *hostname, const char *hostname,
gboolean info_only, gboolean info_only,
NMSettingIP6ConfigPrivacy privacy,
const GByteArray *duid) const GByteArray *duid)
{ {
nm_log_warn (LOGD_DHCP6, "the dhcpcd backend does not support IPv6."); nm_log_warn (LOGD_DHCP6, "the dhcpcd backend does not support IPv6.");

View File

@@ -379,7 +379,8 @@ client_start (NMDHCPManager *self,
guint32 timeout, guint32 timeout,
GByteArray *dhcp_anycast_addr, GByteArray *dhcp_anycast_addr,
const char *hostname, const char *hostname,
gboolean info_only) gboolean info_only,
NMSettingIP6ConfigPrivacy privacy)
{ {
NMDHCPManagerPrivate *priv; NMDHCPManagerPrivate *priv;
NMDHCPClient *client; NMDHCPClient *client;
@@ -418,7 +419,7 @@ client_start (NMDHCPManager *self,
g_signal_connect (client, NM_DHCP_CLIENT_SIGNAL_STATE_CHANGED, G_CALLBACK (client_state_changed), self); g_signal_connect (client, NM_DHCP_CLIENT_SIGNAL_STATE_CHANGED, G_CALLBACK (client_state_changed), self);
if (ipv6) if (ipv6)
success = nm_dhcp_client_start_ip6 (client, dhcp_anycast_addr, hostname, info_only); success = nm_dhcp_client_start_ip6 (client, dhcp_anycast_addr, hostname, info_only, privacy);
else else
success = nm_dhcp_client_start_ip4 (client, dhcp_client_id, dhcp_anycast_addr, hostname); success = nm_dhcp_client_start_ip4 (client, dhcp_client_id, dhcp_anycast_addr, hostname);
@@ -460,7 +461,8 @@ nm_dhcp_manager_start_ip4 (NMDHCPManager *self,
if (send_hostname) if (send_hostname)
hostname = get_send_hostname (self, dhcp_hostname); hostname = get_send_hostname (self, dhcp_hostname);
return client_start (self, iface, ifindex, hwaddr, uuid, priority, FALSE, return client_start (self, iface, ifindex, hwaddr, uuid, priority, FALSE,
dhcp_client_id, timeout, dhcp_anycast_addr, hostname, FALSE); dhcp_client_id, timeout, dhcp_anycast_addr, hostname,
FALSE, 0);
} }
/* Caller owns a reference to the NMDHCPClient on return */ /* Caller owns a reference to the NMDHCPClient on return */
@@ -474,15 +476,18 @@ nm_dhcp_manager_start_ip6 (NMDHCPManager *self,
const char *dhcp_hostname, const char *dhcp_hostname,
guint32 timeout, guint32 timeout,
GByteArray *dhcp_anycast_addr, GByteArray *dhcp_anycast_addr,
gboolean info_only) gboolean info_only,
NMSettingIP6ConfigPrivacy privacy)
{ {
const char *hostname; const char *hostname;
g_return_val_if_fail (NM_IS_DHCP_MANAGER (self), NULL); g_return_val_if_fail (NM_IS_DHCP_MANAGER (self), NULL);
hostname = dhcp_hostname ? get_send_hostname (self, dhcp_hostname) : NULL; hostname = dhcp_hostname ? get_send_hostname (self, dhcp_hostname) : NULL;
return client_start (self, iface, ifindex, hwaddr, uuid, priority, TRUE, return client_start (self, iface, ifindex, hwaddr, uuid, priority, TRUE,
NULL, timeout, dhcp_anycast_addr, hostname, info_only); NULL, timeout, dhcp_anycast_addr, hostname, info_only,
privacy);
} }
void void

View File

@@ -82,7 +82,8 @@ NMDHCPClient * nm_dhcp_manager_start_ip6 (NMDHCPManager *manager,
const char *dhcp_hostname, const char *dhcp_hostname,
guint32 timeout, guint32 timeout,
GByteArray *dhcp_anycast_addr, GByteArray *dhcp_anycast_addr,
gboolean info_only); gboolean info_only,
NMSettingIP6ConfigPrivacy privacy);
GSList * nm_dhcp_manager_get_lease_ip_configs (NMDHCPManager *self, GSList * nm_dhcp_manager_get_lease_ip_configs (NMDHCPManager *self,
const char *iface, const char *iface,