summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrik Flykt <patrik.flykt@linux.intel.com>2016-07-14 14:52:14 +0300
committerPatrik Flykt <patrik.flykt@linux.intel.com>2016-07-15 13:31:31 +0300
commit2d71d831d474d6515525b0da9ae2aa2175f37812 (patch)
treeafd1bfb4beff524bd3b91c9373a02ae1fe01a724
parent79664f0a4107d3f4e201822761460f2e6fabd6bf (diff)
downloadconnman-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.c9
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;
}