summaryrefslogtreecommitdiff
path: root/src/dhcp-manager/nm-dhcp-systemd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dhcp-manager/nm-dhcp-systemd.c')
-rw-r--r--src/dhcp-manager/nm-dhcp-systemd.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/dhcp-manager/nm-dhcp-systemd.c b/src/dhcp-manager/nm-dhcp-systemd.c
index e508ea13bb..7bafc7209e 100644
--- a/src/dhcp-manager/nm-dhcp-systemd.c
+++ b/src/dhcp-manager/nm-dhcp-systemd.c
@@ -691,6 +691,7 @@ dhcp6_event_cb (sd_dhcp6_client *client, int event, gpointer user_data)
static gboolean
ip6_start (NMDhcpClient *client,
const char *dhcp_anycast_addr,
+ const struct in6_addr *ll_addr,
gboolean info_only,
NMSettingIP6ConfigPrivacy privacy,
const GByteArray *duid)
@@ -761,6 +762,12 @@ ip6_start (NMDhcpClient *client,
sd_dhcp6_client_set_request_option (priv->client6, dhcp6_requests[i].num);
}
+ r = sd_dhcp6_client_set_local_address (priv->client6, ll_addr);
+ if (r < 0) {
+ nm_log_warn (LOGD_DHCP6, "(%s): failed to set local address (%d)", iface, r);
+ goto error;
+ }
+
r = sd_dhcp6_client_start (priv->client6);
if (r < 0) {
nm_log_warn (LOGD_DHCP6, "(%s): failed to start DHCP (%d)", iface, r);