Squashed 'shared/n-dhcp4/' changes from 8c91e9ae8999..f459d85fdef6
f459d85fdef6 packed: use c_errno() in packet_sendto_udp() to avoid compiler warning d52768da6acd client-lease: add n_dhcp4_client_lease_get_server_identifier() git-subtree-dir: shared/n-dhcp4 git-subtree-split: f459d85fdef6954b4f4b103e211fb9e175b12bac
This commit is contained in:
@@ -36,6 +36,7 @@ global:
|
|||||||
n_dhcp4_client_lease_get_yiaddr;
|
n_dhcp4_client_lease_get_yiaddr;
|
||||||
n_dhcp4_client_lease_get_siaddr;
|
n_dhcp4_client_lease_get_siaddr;
|
||||||
n_dhcp4_client_lease_get_lifetime;
|
n_dhcp4_client_lease_get_lifetime;
|
||||||
|
n_dhcp4_client_lease_get_server_identifier;
|
||||||
n_dhcp4_client_lease_query;
|
n_dhcp4_client_lease_query;
|
||||||
n_dhcp4_client_lease_select;
|
n_dhcp4_client_lease_select;
|
||||||
n_dhcp4_client_lease_accept;
|
n_dhcp4_client_lease_accept;
|
||||||
|
@@ -241,6 +241,32 @@ _c_public_ void n_dhcp4_client_lease_get_lifetime(NDhcp4ClientLease *lease, uint
|
|||||||
*ns_lifetimep = lease->lifetime;
|
*ns_lifetimep = lease->lifetime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* n_dhcp4_client_lease_get_server_identifier() - get the server identifier
|
||||||
|
* @lease: the lease to operate on
|
||||||
|
* @addr: return argument for the server identifier
|
||||||
|
*
|
||||||
|
* Gets the address contained in the server-identifier DHCP option, in network
|
||||||
|
* byte order.
|
||||||
|
*
|
||||||
|
* Return: 0 on success, negative error code on failure.
|
||||||
|
*/
|
||||||
|
_c_public_ int n_dhcp4_client_lease_get_server_identifier (NDhcp4ClientLease *lease, struct in_addr *addr) {
|
||||||
|
uint8_t *data;
|
||||||
|
size_t n_data;
|
||||||
|
int r;
|
||||||
|
|
||||||
|
r = n_dhcp4_incoming_query(lease->message, N_DHCP4_OPTION_SERVER_IDENTIFIER, &data, &n_data);
|
||||||
|
if (r)
|
||||||
|
return r;
|
||||||
|
if (n_data < sizeof(struct in_addr))
|
||||||
|
return N_DHCP4_E_MALFORMED;
|
||||||
|
|
||||||
|
memcpy(addr, data, sizeof(struct in_addr));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* n_dhcp4_client_lease_query() - query the lease for an option
|
* n_dhcp4_client_lease_query() - query the lease for an option
|
||||||
* @lease: the lease to operate on
|
* @lease: the lease to operate on
|
||||||
|
@@ -171,6 +171,7 @@ void n_dhcp4_client_lease_get_siaddr(NDhcp4ClientLease *lease, struct in_addr *s
|
|||||||
void n_dhcp4_client_lease_get_basetime(NDhcp4ClientLease *lease, uint64_t *ns_basetimep);
|
void n_dhcp4_client_lease_get_basetime(NDhcp4ClientLease *lease, uint64_t *ns_basetimep);
|
||||||
void n_dhcp4_client_lease_get_lifetime(NDhcp4ClientLease *lease, uint64_t *ns_lifetimep);
|
void n_dhcp4_client_lease_get_lifetime(NDhcp4ClientLease *lease, uint64_t *ns_lifetimep);
|
||||||
int n_dhcp4_client_lease_query(NDhcp4ClientLease *lease, uint8_t option, uint8_t **datap, size_t *n_datap);
|
int n_dhcp4_client_lease_query(NDhcp4ClientLease *lease, uint8_t option, uint8_t **datap, size_t *n_datap);
|
||||||
|
int n_dhcp4_client_lease_get_server_identifier (NDhcp4ClientLease *lease, struct in_addr *addr);
|
||||||
|
|
||||||
int n_dhcp4_client_lease_select(NDhcp4ClientLease *lease);
|
int n_dhcp4_client_lease_select(NDhcp4ClientLease *lease);
|
||||||
int n_dhcp4_client_lease_accept(NDhcp4ClientLease *lease);
|
int n_dhcp4_client_lease_accept(NDhcp4ClientLease *lease);
|
||||||
|
@@ -106,6 +106,7 @@ static void test_api_functions(void) {
|
|||||||
(void *)n_dhcp4_client_lease_get_yiaddr,
|
(void *)n_dhcp4_client_lease_get_yiaddr,
|
||||||
(void *)n_dhcp4_client_lease_get_siaddr,
|
(void *)n_dhcp4_client_lease_get_siaddr,
|
||||||
(void *)n_dhcp4_client_lease_get_lifetime,
|
(void *)n_dhcp4_client_lease_get_lifetime,
|
||||||
|
(void *)n_dhcp4_client_lease_get_server_identifier,
|
||||||
(void *)n_dhcp4_client_lease_query,
|
(void *)n_dhcp4_client_lease_query,
|
||||||
(void *)n_dhcp4_client_lease_select,
|
(void *)n_dhcp4_client_lease_select,
|
||||||
(void *)n_dhcp4_client_lease_accept,
|
(void *)n_dhcp4_client_lease_accept,
|
||||||
|
@@ -223,7 +223,7 @@ int packet_sendto_udp(int sockfd,
|
|||||||
|
|
||||||
pktlen = sendmsg(sockfd, &msg, 0);
|
pktlen = sendmsg(sockfd, &msg, 0);
|
||||||
if (pktlen < 0)
|
if (pktlen < 0)
|
||||||
return -errno;
|
return -c_errno();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Kernel never truncates. Worst case, we get -EMSGSIZE. Kernel *might*
|
* Kernel never truncates. Worst case, we get -EMSGSIZE. Kernel *might*
|
||||||
|
Reference in New Issue
Block a user