summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEun Chul Kim <ec4537.kim@samsung.com>2017-02-27 06:57:08 (GMT)
committerSeonah Moon <seonah1.moon@samsung.com>2017-03-30 09:46:32 (GMT)
commit1437341c77d3501da366a3645736d509d73415f8 (patch)
treea064bafe213f72130efb0c6f23e6ed57d229dfff
parentb9a4f38dcd5587016b057bd044fd643218b77b4d (diff)
downloadconnman-submit/tizen/20170403.015738.zip
connman-submit/tizen/20170403.015738.tar.gz
connman-submit/tizen/20170403.015738.tar.bz2
- Replace g_timeout_add_seconds() with 0 as timeout to g_idle_add() - gdhcp: Set T1 and T2 to infinite if expiry time is infinite - dhcpv6: Return -EISCONN when the expiry time is inifinite Change-Id: I59ddd9b4c2d1af0f1ee8898381bc0372fba8e8ad
-rwxr-xr-xgdhcp/client.c9
-rwxr-xr-xsrc/dhcpv6.c12
2 files changed, 14 insertions, 7 deletions
diff --git a/gdhcp/client.c b/gdhcp/client.c
index 3157632..7e04176 100755
--- a/gdhcp/client.c
+++ b/gdhcp/client.c
@@ -854,16 +854,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;
}
diff --git a/src/dhcpv6.c b/src/dhcpv6.c
index 55dcd61..bf4da3e 100755
--- a/src/dhcpv6.c
+++ b/src/dhcpv6.c
@@ -1234,12 +1234,17 @@ static int check_restart(struct connman_dhcpv6 *dhcp)
g_dhcpv6_client_get_timeouts(dhcp->dhcp_client, NULL, NULL,
NULL, &expired);
+
+ /* infinite lifetime for an DHCPv6 address */
+ if (expired == 0xffffffff)
+ return -EISCONN;
+
current = time(NULL);
if (current >= expired) {
DBG("expired by %d secs", (int)(current - expired));
- g_timeout_add(0, dhcpv6_restart, dhcp);
+ g_idle_add(dhcpv6_restart, dhcp);
return -ETIMEDOUT;
}
@@ -1498,8 +1503,7 @@ int __connman_dhcpv6_start_renew(struct connman_network *network,
/* RFC 3315, chapter 18.1.3, start rebind */
DBG("start rebind immediately");
- dhcp->timeout = g_timeout_add_seconds(0, start_rebind,
- dhcp);
+ dhcp->timeout = g_idle_add(start_rebind, dhcp);
} else if ((unsigned)current < (unsigned)started + T1) {
delta = started + T1 - current;
@@ -2205,7 +2209,7 @@ static int check_pd_restart(struct connman_dhcpv6 *dhcp)
if (current > expired) {
DBG("expired by %d secs", (int)(current - expired));
- g_timeout_add(0, dhcpv6_restart, dhcp);
+ g_idle_add(dhcpv6_restart, dhcp);
return -ETIMEDOUT;
}