1
0
mirror of https://github.com/systemd/systemd synced 2024-07-09 04:26:06 +00:00

sd-dhcp-client: make return arguments for sd_dhcp_client_get_client_id() optional

This commit is contained in:
Yu Watanabe 2023-05-09 00:34:06 +09:00
parent 22e299fc5e
commit f04c991a2f
2 changed files with 24 additions and 17 deletions

View File

@ -339,25 +339,32 @@ int sd_dhcp_client_set_mac(
int sd_dhcp_client_get_client_id(
sd_dhcp_client *client,
uint8_t *type,
const uint8_t **data,
size_t *data_len) {
uint8_t *ret_type,
const uint8_t **ret_data,
size_t *ret_data_len) {
assert_return(client, -EINVAL);
assert_return(type, -EINVAL);
assert_return(data, -EINVAL);
assert_return(data_len, -EINVAL);
if (client->client_id_len) {
*type = client->client_id.type;
*data = client->client_id.raw.data;
*data_len = client->client_id_len - sizeof(client->client_id.type);
} else {
*type = 0;
*data = NULL;
*data_len = 0;
if (client->client_id_len > 0) {
if (client->client_id_len < offsetof(sd_dhcp_client_id, raw.data))
return -EINVAL;
if (ret_type)
*ret_type = client->client_id.type;
if (ret_data)
*ret_data = client->client_id.raw.data;
if (ret_data_len)
*ret_data_len = client->client_id_len - offsetof(sd_dhcp_client_id, raw.data);
return 1;
}
if (ret_type)
*ret_type = 0;
if (ret_data)
*ret_data = NULL;
if (ret_data_len)
*ret_data_len = 0;
return 0;
}

View File

@ -279,9 +279,9 @@ int sd_dhcp_client_set_duid_llt(
uint64_t llt_time);
int sd_dhcp_client_get_client_id(
sd_dhcp_client *client,
uint8_t *type,
const uint8_t **data,
size_t *data_len);
uint8_t *ret_type,
const uint8_t **ret_data,
size_t *ret_data_len);
int sd_dhcp_client_set_mtu(
sd_dhcp_client *client,
uint32_t mtu);