sd-dhcp6-client: introduce direct getter and setter of DUID

This commit is contained in:
Yu Watanabe
2023-12-23 04:15:09 +09:00
parent 97c3506dcd
commit ce9bd20616
2 changed files with 23 additions and 0 deletions
+20
View File
@@ -268,6 +268,26 @@ int sd_dhcp6_client_set_duid_raw(sd_dhcp6_client *client, uint16_t duid_type, co
return 0;
}
int sd_dhcp6_client_set_duid(sd_dhcp6_client *client, const sd_dhcp_duid *duid) {
assert_return(client, -EINVAL);
assert_return(!sd_dhcp6_client_is_running(client), -EBUSY);
assert_return(sd_dhcp_duid_is_set(duid), -EINVAL);
client->duid = *duid;
return 0;
}
int sd_dhcp6_client_get_duid(sd_dhcp6_client *client, const sd_dhcp_duid **ret) {
assert_return(client, -EINVAL);
assert_return(ret, -EINVAL);
if (!sd_dhcp_duid_is_set(&client->duid))
return -ENODATA;
*ret = &client->duid;
return 0;
}
int sd_dhcp6_client_duid_as_string(
sd_dhcp6_client *client,
char **duid) {
+3
View File
@@ -24,6 +24,7 @@
#include <sys/types.h>
#include "sd-device.h"
#include "sd-dhcp-duid.h"
#include "sd-dhcp6-lease.h"
#include "sd-dhcp6-option.h"
#include "sd-event.h"
@@ -68,6 +69,8 @@ int sd_dhcp6_client_set_duid_ll(sd_dhcp6_client *client);
int sd_dhcp6_client_set_duid_en(sd_dhcp6_client *client);
int sd_dhcp6_client_set_duid_uuid(sd_dhcp6_client *client);
int sd_dhcp6_client_set_duid_raw(sd_dhcp6_client *client, uint16_t duid_type, const uint8_t *duid, size_t duid_len);
int sd_dhcp6_client_set_duid(sd_dhcp6_client *client, const sd_dhcp_duid *duid);
int sd_dhcp6_client_get_duid(sd_dhcp6_client *client, const sd_dhcp_duid **ret);
int sd_dhcp6_client_set_iaid(
sd_dhcp6_client *client,
uint32_t iaid);