diff options
author | Patrik Flykt <patrik.flykt@linux.intel.com> | 2016-07-14 14:52:14 +0300 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2016-07-15 13:31:31 +0300 |
commit | 2d71d831d474d6515525b0da9ae2aa2175f37812 (patch) | |
tree | afd1bfb4beff524bd3b91c9373a02ae1fe01a724 | |
parent | 79664f0a4107d3f4e201822761460f2e6fabd6bf (diff) | |
download | connman-2d71d831d474d6515525b0da9ae2aa2175f37812.tar.gz |
gdhcp: Set T1 and T2 to infinite if expiry time is infinite
RFC 3315, Section 22.5, indicates that
..If the "shortest" preferred lifetime is 0xffffffff ("infinity"),
the recommended T1 and T2 values are also 0xffffffff...
Use value 0xffffffff to indicate inifinite lease time and infinite
T1 and T2 to simplify the decision making in the caller of this
function.
Based on a patch by wangfe@nestlabs.com
-rw-r--r-- | gdhcp/client.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gdhcp/client.c b/gdhcp/client.c index 9012b382..fbb40ab5 100644 --- a/gdhcp/client.c +++ b/gdhcp/client.c @@ -827,16 +827,19 @@ int g_dhcpv6_client_get_timeouts(GDHCPClient *dhcp_client, return -EINVAL; if (T1) - *T1 = dhcp_client->T1; + *T1 = (dhcp_client->expire == 0xffffffff) ? 0xffffffff: + dhcp_client->T1; if (T2) - *T2 = dhcp_client->T2; + *T2 = (dhcp_client->expire == 0xffffffff) ? 0xffffffff: + dhcp_client->T2; if (started) *started = dhcp_client->last_request; if (expire) - *expire = dhcp_client->last_request + dhcp_client->expire; + *expire = (dhcp_client->expire == 0xffffffff) ? 0xffffffff: + dhcp_client->last_request + dhcp_client->expire; return 0; } |