summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAbhishek Sansanwal <abhishek.s94@samsung.com>2017-08-03 09:27:22 +0530
committerAbhishek Sansanwal <abhishek.s94@samsung.com>2017-08-03 09:27:22 +0530
commitfd3573b27dcecd10afaaabada6892a0e65974e44 (patch)
tree18223155b852ec01834c1c247acbe1a3690ca8ec /src
parent1b56f4d34a2583a30be96f9e0e5dd44ab4c30be8 (diff)
downloadconnman-fd3573b27dcecd10afaaabada6892a0e65974e44.tar.gz
connman-fd3573b27dcecd10afaaabada6892a0e65974e44.tar.bz2
connman-fd3573b27dcecd10afaaabada6892a0e65974e44.zip
Change-Id: I0727c24f30be5162d27e49996dfa376348f98527 Signed-off-by: Abhishek Sansanwal <abhishek.s94@samsung.com>
Diffstat (limited to 'src')
-rwxr-xr-xsrc/connman.h5
-rwxr-xr-xsrc/dhcp.c9
-rwxr-xr-xsrc/ipconfig.c14
3 files changed, 28 insertions, 0 deletions
diff --git a/src/connman.h b/src/connman.h
index 7c44d1c1..237c1ec7 100755
--- a/src/connman.h
+++ b/src/connman.h
@@ -367,6 +367,11 @@ const char *__connman_ipconfig_get_broadcast(struct connman_ipconfig *ipconfig);
void __connman_ipconfig_set_broadcast(struct connman_ipconfig *ipconfig, const char *broadcast);
const char *__connman_ipconfig_get_gateway(struct connman_ipconfig *ipconfig);
void __connman_ipconfig_set_gateway(struct connman_ipconfig *ipconfig, const char *gateway);
+
+#if defined TIZEN_EXT
+void __connman_ipconfig_set_dhcp_lease_duration(struct connman_ipconfig *ipconfig, int dhcp_lease_duration);
+#endif
+
unsigned char __connman_ipconfig_get_prefixlen(struct connman_ipconfig *ipconfig);
void __connman_ipconfig_set_prefixlen(struct connman_ipconfig *ipconfig, unsigned char prefixlen);
diff --git a/src/dhcp.c b/src/dhcp.c
index 7e5f71d2..b6273625 100755
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -473,6 +473,10 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data)
__connman_ipconfig_set_dhcp_address(dhcp->ipconfig, address);
DBG("last address %s", address);
+#if defined TIZEN_EXT
+ int dhcp_lease_duration = g_dhcp_client_get_dhcp_lease_duration(dhcp_client);
+#endif
+
option = g_dhcp_client_get_option(dhcp_client, G_DHCP_SUBNET);
if (option)
netmask = g_strdup(option->data);
@@ -505,6 +509,11 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data)
__connman_ipconfig_set_method(dhcp->ipconfig,
CONNMAN_IPCONFIG_METHOD_DHCP);
+
+#if defined TIZEN_EXT
+ __connman_ipconfig_set_dhcp_lease_duration(dhcp->ipconfig, dhcp_lease_duration);
+#endif
+
if (ip_change) {
__connman_ipconfig_set_local(dhcp->ipconfig, address);
__connman_ipconfig_set_prefixlen(dhcp->ipconfig, prefixlen);
diff --git a/src/ipconfig.c b/src/ipconfig.c
index 411fc450..700384fe 100755
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -53,6 +53,10 @@ struct connman_ipconfig {
struct connman_ipaddress *address;
struct connman_ipaddress *system;
+#if defined TIZEN_EXT
+ int dhcp_lease_duration;
+#endif
+
int ipv6_privacy_config;
char *last_dhcp_address;
char **last_dhcpv6_prefixes;
@@ -1098,6 +1102,14 @@ void __connman_ipconfig_set_gateway(struct connman_ipconfig *ipconfig,
}
#if defined TIZEN_EXT
+void __connman_ipconfig_set_dhcp_lease_duration(struct connman_ipconfig *ipconfig,
+ int dhcp_lease_duration)
+{
+ ipconfig->dhcp_lease_duration = dhcp_lease_duration;
+}
+#endif
+
+#if defined TIZEN_EXT
int __connman_ipconfig_gateway_add(struct connman_ipconfig *ipconfig, struct connman_service *service)
#else
int __connman_ipconfig_gateway_add(struct connman_ipconfig *ipconfig)
@@ -1903,6 +1915,8 @@ void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig,
DBUS_TYPE_STRING, &server_ip);
g_free(server_ip);
}
+ connman_dbus_dict_append_basic(iter, "DHCPLeaseDuration",
+ DBUS_TYPE_INT32, &ipconfig->dhcp_lease_duration);
}
#endif
}