summaryrefslogtreecommitdiff
path: root/src/libsystemd-network/sd-dhcp6-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsystemd-network/sd-dhcp6-client.c')
-rw-r--r--src/libsystemd-network/sd-dhcp6-client.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
index ec3484383b..056bfa3d3d 100644
--- a/src/libsystemd-network/sd-dhcp6-client.c
+++ b/src/libsystemd-network/sd-dhcp6-client.c
@@ -771,8 +771,6 @@ static int client_parse_message(
size_t pos = 0;
int r;
bool clientid = false;
- uint8_t *id = NULL;
- size_t id_len;
uint32_t lt_t1 = ~0, lt_t2 = ~0;
assert(client);
@@ -817,8 +815,8 @@ static int client_parse_message(
break;
case SD_DHCP6_OPTION_SERVERID:
- r = dhcp6_lease_get_serverid(lease, &id, &id_len);
- if (r >= 0 && id) {
+ r = dhcp6_lease_get_serverid(lease, NULL, NULL);
+ if (r >= 0) {
log_dhcp6_client(client, "%s contains multiple serverids",
dhcp6_message_type_to_string(message->type));
return -EINVAL;
@@ -956,24 +954,26 @@ static int client_parse_message(
}
if (client->state != DHCP6_STATE_INFORMATION_REQUEST) {
- r = dhcp6_lease_get_serverid(lease, &id, &id_len);
- if (r < 0)
+ r = dhcp6_lease_get_serverid(lease, NULL, NULL);
+ if (r < 0) {
log_dhcp6_client(client, "%s has no server id",
dhcp6_message_type_to_string(message->type));
- return r;
- }
+ return -EINVAL;
+ }
- if (lease->ia.addresses) {
- lease->ia.ia_na.lifetime_t1 = htobe32(lt_t1);
- lease->ia.ia_na.lifetime_t2 = htobe32(lt_t2);
- }
+ } else {
+ if (lease->ia.addresses) {
+ lease->ia.ia_na.lifetime_t1 = htobe32(lt_t1);
+ lease->ia.ia_na.lifetime_t2 = htobe32(lt_t2);
+ }
- if (lease->pd.addresses) {
- lease->pd.ia_pd.lifetime_t1 = htobe32(lt_t1);
- lease->pd.ia_pd.lifetime_t2 = htobe32(lt_t2);
+ if (lease->pd.addresses) {
+ lease->pd.ia_pd.lifetime_t1 = htobe32(lt_t1);
+ lease->pd.ia_pd.lifetime_t2 = htobe32(lt_t2);
+ }
}
- return r;
+ return 0;
}
static int client_receive_reply(sd_dhcp6_client *client, DHCP6Message *reply, size_t len) {