mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-03 19:50:14 +01:00
n-dhcp4: merge branch 'lease-time'
Import the downstream addition for lease-time [1]. These are not merged upstream yet, but let's use the patches already. If the patches that get merged upstream eventually differ, we still can adjust our fork easily. [1] https://github.com/nettools/n-dhcp4/pull/5
This commit is contained in:
commit
7040a4f93a
4 changed files with 23 additions and 13 deletions
|
|
@ -217,6 +217,18 @@ _c_public_ void n_dhcp4_client_lease_get_siaddr(NDhcp4ClientLease *lease, struct
|
|||
siaddr->s_addr = header->siaddr;
|
||||
}
|
||||
|
||||
/**
|
||||
* n_dhcp4_client_lease_get_basetime() - get the timestamp when the lease was received.
|
||||
* @lease: the lease to operate on
|
||||
* @ns_basetimep: return argument for the base time in nano seconds
|
||||
*
|
||||
* Gets the timestamp when the lease was received in CLOCK_BOOTTIME. This
|
||||
* is also the base timestamp for the expiration of the lifetime and t1/t2.
|
||||
*/
|
||||
_c_public_ void n_dhcp4_client_lease_get_basetime(NDhcp4ClientLease *lease, uint64_t *ns_basetimep) {
|
||||
*ns_basetimep = lease->message->userdata.base_time;
|
||||
}
|
||||
|
||||
/**
|
||||
* n_dhcp4_client_lease_get_lifetime() - get the lifetime
|
||||
* @lease: the lease to operate on
|
||||
|
|
|
|||
|
|
@ -800,7 +800,8 @@ static int n_dhcp4_client_probe_transition_lifetime(NDhcp4ClientProbe *probe) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int n_dhcp4_client_probe_transition_offer(NDhcp4ClientProbe *probe, NDhcp4Incoming *message) {
|
||||
static int n_dhcp4_client_probe_transition_offer(NDhcp4ClientProbe *probe, NDhcp4Incoming *message_take) {
|
||||
_c_cleanup_(n_dhcp4_incoming_freep) NDhcp4Incoming *message = message_take;
|
||||
_c_cleanup_(n_dhcp4_client_lease_unrefp) NDhcp4ClientLease *lease = NULL;
|
||||
NDhcp4CEventNode *node;
|
||||
int r;
|
||||
|
|
@ -818,7 +819,7 @@ static int n_dhcp4_client_probe_transition_offer(NDhcp4ClientProbe *probe, NDhcp
|
|||
if (r)
|
||||
return r;
|
||||
|
||||
/* message consumed, do not fail */
|
||||
message = NULL; /* consumed */
|
||||
|
||||
n_dhcp4_client_lease_link(lease, probe);
|
||||
|
||||
|
|
@ -843,7 +844,8 @@ static int n_dhcp4_client_probe_transition_offer(NDhcp4ClientProbe *probe, NDhcp
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int n_dhcp4_client_probe_transition_ack(NDhcp4ClientProbe *probe, NDhcp4Incoming *message) {
|
||||
static int n_dhcp4_client_probe_transition_ack(NDhcp4ClientProbe *probe, NDhcp4Incoming *message_take) {
|
||||
_c_cleanup_(n_dhcp4_incoming_freep) NDhcp4Incoming *message = message_take;
|
||||
_c_cleanup_(n_dhcp4_client_lease_unrefp) NDhcp4ClientLease *lease = NULL;
|
||||
NDhcp4CEventNode *node;
|
||||
int r;
|
||||
|
|
@ -862,7 +864,7 @@ static int n_dhcp4_client_probe_transition_ack(NDhcp4ClientProbe *probe, NDhcp4I
|
|||
if (r)
|
||||
return r;
|
||||
|
||||
/* message consumed, do not fail */
|
||||
message = NULL; /* consumed */
|
||||
|
||||
n_dhcp4_client_lease_link(lease, probe);
|
||||
|
||||
|
|
@ -885,7 +887,7 @@ static int n_dhcp4_client_probe_transition_ack(NDhcp4ClientProbe *probe, NDhcp4I
|
|||
if (r)
|
||||
return r;
|
||||
|
||||
/* message consumed, don to fail */
|
||||
message = NULL; /* consumed */
|
||||
|
||||
n_dhcp4_client_lease_link(lease, probe);
|
||||
|
||||
|
|
@ -1167,17 +1169,15 @@ int n_dhcp4_client_probe_dispatch_io(NDhcp4ClientProbe *probe, uint32_t events)
|
|||
switch (type) {
|
||||
case N_DHCP4_MESSAGE_OFFER:
|
||||
r = n_dhcp4_client_probe_transition_offer(probe, message);
|
||||
message = NULL; /* consumed */
|
||||
if (r)
|
||||
return r;
|
||||
else
|
||||
message = NULL; /* consumed */
|
||||
break;
|
||||
case N_DHCP4_MESSAGE_ACK:
|
||||
r = n_dhcp4_client_probe_transition_ack(probe, message);
|
||||
message = NULL; /* consumed */
|
||||
if (r)
|
||||
return r;
|
||||
else
|
||||
message = NULL; /* consumed */
|
||||
break;
|
||||
case N_DHCP4_MESSAGE_NAK:
|
||||
r = n_dhcp4_client_probe_transition_nak(probe);
|
||||
|
|
|
|||
|
|
@ -365,10 +365,7 @@ static int n_dhcp4_incoming_query_u32(NDhcp4Incoming *message, uint8_t option, u
|
|||
|
||||
memcpy(&be32, data, sizeof(be32));
|
||||
|
||||
if (be32 == (uint32_t)-1)
|
||||
*u32p = 0;
|
||||
else
|
||||
*u32p = ntohl(be32);
|
||||
*u32p = ntohl(be32);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -157,6 +157,7 @@ NDhcp4ClientLease *n_dhcp4_client_lease_unref(NDhcp4ClientLease *lease);
|
|||
|
||||
void n_dhcp4_client_lease_get_yiaddr(NDhcp4ClientLease *lease, struct in_addr *yiaddr);
|
||||
void n_dhcp4_client_lease_get_siaddr(NDhcp4ClientLease *lease, struct in_addr *siaddr);
|
||||
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);
|
||||
int n_dhcp4_client_lease_query(NDhcp4ClientLease *lease, uint8_t option, uint8_t **datap, size_t *n_datap);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue