Added wifi_manager_ap_get_dhcp_lease_duration API 11/142211/1
authorAbhishek Sansanwal <abhishek.s94@samsung.com>
Thu, 3 Aug 2017 05:32:19 +0000 (11:02 +0530)
committerAbhishek Sansanwal <abhishek.s94@samsung.com>
Thu, 3 Aug 2017 05:32:19 +0000 (11:02 +0530)
Change-Id: I6ed6b1ec968b949c94d1b25c3258624580adb59f
Signed-off-by: Abhishek Sansanwal <abhishek.s94@samsung.com>
include/network_config.h
src/network_interface.c
src/wifi_ap.c
test/wifi_manager_test.c

index 6150642683f8ac9af5ff20e7eb2ec97091c3312d..3e44b070d2aae8f23b9c65f2ae6bb8cdef842f14 100755 (executable)
@@ -108,6 +108,7 @@ typedef struct {
        net_addr_s GatewayAddr;                                                 /** Gateway address */
        char BServerAddr;                                                               /** Whether DHCP Server address present or not */
        net_addr_s ServerAddr;                                                  /** DHCP Server Address */
+       int DHCPLeaseDuration;                                                  /** DHCP Lease duration in seconds */
        net_proxy_type_e ProxyMethod;                                   /** Proxy Method type */
        char ProxyAddr[NET_PROXY_LEN_MAX+1];                    /** Proxy address */
        char MacAddr[NET_MAX_MAC_ADDR_LEN+1];                   /** MAC address */
index 3f672ed9c3a0adb94fae5346f05841df1c491398..63d5e42385c76ae935b0e98d6f670d6920774e9f 100755 (executable)
@@ -300,6 +300,8 @@ static int __net_extract_common_info(const char *key, GVariant *variant, net_pro
 
                                __net_extract_ip(value, &net_info->ServerAddr);
                                net_info->BServerAddr = TRUE;
+                       } else if (g_strcmp0(subKey, "DHCPLeaseDuration") == 0) {
+                               net_info->DHCPLeaseDuration = g_variant_get_int32(var);
                        }
                }
                g_variant_iter_free(iter);
index ffc3c1edf46c1e0a0654399f141bfe82023b6b2c..60fd98ed8253b40ed4e5b27c948d4aa9b126916c 100755 (executable)
@@ -961,6 +961,34 @@ EXPORT_API int wifi_manager_ap_get_dhcp_server_address(wifi_manager_ap_h ap,
        return WIFI_MANAGER_ERROR_NONE;
 }
 
+
+EXPORT_API int wifi_manager_ap_get_dhcp_lease_duration(wifi_manager_ap_h ap,
+               wifi_manager_address_family_e address_family, int* dhcp_lease_duration)
+{
+       CHECK_FEATURE_SUPPORTED(WIFI_FEATURE);
+
+       if (_wifi_check_ap_validity(ap) == false ||
+           (address_family != WIFI_MANAGER_ADDRESS_FAMILY_IPV4 &&
+            address_family != WIFI_MANAGER_ADDRESS_FAMILY_IPV6)) {
+               WIFI_LOG(WIFI_ERROR, "Invalid parameter"); //LCOV_EXCL_LINE
+               return WIFI_MANAGER_ERROR_INVALID_PARAMETER; //LCOV_EXCL_LINE
+       }
+
+       if (address_family == WIFI_MANAGER_ADDRESS_FAMILY_IPV6) {
+               WIFI_LOG(WIFI_ERROR, "Not supported"); //LCOV_EXCL_LINE
+               return WIFI_MANAGER_ERROR_NOT_SUPPORTED; //LCOV_EXCL_LINE
+       }
+
+       net_profile_info_s *profile_info = ap;
+       net_dev_info_s *net_info = &profile_info->net_info;
+
+       WIFI_LOG(WIFI_INFO, "DHCP lease duration %d", net_info->DHCPLeaseDuration);
+
+       *dhcp_lease_duration = net_info->DHCPLeaseDuration;
+
+       return WIFI_MANAGER_ERROR_NONE;
+}
+
 EXPORT_API int wifi_manager_ap_get_proxy_address(wifi_manager_ap_h ap,
                wifi_manager_address_family_e address_family, char **proxy_address)
 {
index 6fb8d983e80ff98bdc067e36bce2fb5590db5126..c107d3599beb91ce3dc153ba1df64257e1eae60e 100755 (executable)
@@ -1011,6 +1011,11 @@ static bool __test_found_print_ap_info_callback(wifi_manager_ap_h ap, void *user
                                g_free(str_value);
                        } else
                                printf("Fail to get DHCP Server\n");
+                       if (wifi_manager_ap_get_dhcp_lease_duration(ap, address_type, &int_value) ==
+                                       WIFI_MANAGER_ERROR_NONE) {
+                               printf("DHCP Lease duration : %d\n", int_value);
+                       } else
+                               printf("Fail to get DHCP lease duration\n");
                }
 
                if (wifi_manager_ap_get_proxy_type(ap, &proxy_type) == WIFI_MANAGER_ERROR_NONE)