summaryrefslogtreecommitdiff
path: root/src/libsystemd-network/sd-dhcp6-client.c
diff options
context:
space:
mode:
authorPatrik Flykt <patrik.flykt@linux.intel.com>2018-01-04 15:11:48 +0200
committerPatrik Flykt <patrik.flykt@linux.intel.com>2018-01-04 15:22:44 +0200
commit69b4399748297a2a812e5f8e5d2d786b3b1d1a96 (patch)
tree0cd37149f6e66c6cdd5cc100dfdf2eea47b72e96 /src/libsystemd-network/sd-dhcp6-client.c
parentdce6563fc6f8537368e944a8f344682541ea1f30 (diff)
downloadsystemd-69b4399748297a2a812e5f8e5d2d786b3b1d1a96.tar.gz
dhcp6: Ensure IAID is applied to both IA NA and IA PD
Update the code to set IAID for both IA NA and IA PD options.
Diffstat (limited to 'src/libsystemd-network/sd-dhcp6-client.c')
-rw-r--r--src/libsystemd-network/sd-dhcp6-client.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
index 6efe1a7283..9586da6503 100644
--- a/src/libsystemd-network/sd-dhcp6-client.c
+++ b/src/libsystemd-network/sd-dhcp6-client.c
@@ -709,16 +709,20 @@ error:
static int client_ensure_iaid(sd_dhcp6_client *client) {
int r;
+ be32_t iaid;
assert(client);
if (client->ia_na.ia_na.id)
return 0;
- r = dhcp_identifier_set_iaid(client->ifindex, client->mac_addr, client->mac_addr_len, &client->ia_na.ia_na.id);
+ r = dhcp_identifier_set_iaid(client->ifindex, client->mac_addr, client->mac_addr_len, &iaid);
if (r < 0)
return r;
+ client->ia_na.ia_na.id = iaid;
+ client->ia_pd.ia_pd.id = iaid;
+
return 0;
}