[ACR-924] Added CAPI to get DHCP Server Address 00/126400/4
authortaesub kim <taesub.kim@samsung.com>
Thu, 6 Apr 2017 08:41:55 +0000 (17:41 +0900)
committertaesub kim <taesub.kim@samsung.com>
Mon, 24 Apr 2017 00:44:12 +0000 (09:44 +0900)
Change-Id: I34c5b09e0e8a562c4ff9d65e557b58e457c35380
Signed-off-by: Taesub Kim <taesub.kim@samsung.com>
include/connection_profile.h
include/net_connection.h
src/connection_profile.c
test/connection_test.c

index 058f0ea..50b3ffd 100755 (executable)
@@ -43,11 +43,11 @@ extern "C" {
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
 */
 typedef enum {
-       CONNECTION_WIFI_SECURITY_TYPE_NONE = 0, /**< Security disabled */
-       CONNECTION_WIFI_SECURITY_TYPE_WEP = 1, /**< WEP */
-       CONNECTION_WIFI_SECURITY_TYPE_WPA_PSK = 2, /**< WPA-PSK */
-       CONNECTION_WIFI_SECURITY_TYPE_WPA2_PSK = 3, /**< WPA2-PSK */
-       CONNECTION_WIFI_SECURITY_TYPE_EAP = 4, /**< EAP */
+       CONNECTION_WIFI_SECURITY_TYPE_NONE = 0,         /**< Security disabled */
+       CONNECTION_WIFI_SECURITY_TYPE_WEP = 1,          /**< WEP */
+       CONNECTION_WIFI_SECURITY_TYPE_WPA_PSK = 2,      /**< WPA-PSK */
+       CONNECTION_WIFI_SECURITY_TYPE_WPA2_PSK = 3,     /**< WPA2-PSK */
+       CONNECTION_WIFI_SECURITY_TYPE_EAP = 4,          /**< EAP */
 } connection_wifi_security_type_e;
 
 
@@ -56,10 +56,10 @@ typedef enum {
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
 */
 typedef enum {
-       CONNECTION_WIFI_ENCRYPTION_TYPE_NONE = 0, /**< Encryption disabled */
-       CONNECTION_WIFI_ENCRYPTION_TYPE_WEP = 1, /**< WEP */
-       CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP = 2, /**< TKIP */
-       CONNECTION_WIFI_ENCRYPTION_TYPE_AES = 3, /**< AES */
+       CONNECTION_WIFI_ENCRYPTION_TYPE_NONE = 0,           /**< Encryption disabled */
+       CONNECTION_WIFI_ENCRYPTION_TYPE_WEP = 1,            /**< WEP */
+       CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP = 2,           /**< TKIP */
+       CONNECTION_WIFI_ENCRYPTION_TYPE_AES = 3,            /**< AES */
        CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED = 4, /**< TKIP and AES are both supported */
 } connection_wifi_encryption_type_e;
 
@@ -80,13 +80,13 @@ typedef enum {
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
 */
 typedef enum {
-       CONNECTION_CELLULAR_SERVICE_TYPE_UNKNOWN = 0, /**< Unknown */
-       CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET = 1, /**< Internet */
-       CONNECTION_CELLULAR_SERVICE_TYPE_MMS = 2, /**< MMS */
+       CONNECTION_CELLULAR_SERVICE_TYPE_UNKNOWN = 0,          /**< Unknown */
+       CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET = 1,         /**< Internet */
+       CONNECTION_CELLULAR_SERVICE_TYPE_MMS = 2,              /**< MMS */
        CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET = 3, /**< Prepaid internet */
-       CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_MMS = 4, /**< Prepaid MMS */
-       CONNECTION_CELLULAR_SERVICE_TYPE_TETHERING = 5, /**< Tethering */
-       CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION = 6, /**< Specific application */
+       CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_MMS = 4,      /**< Prepaid MMS */
+       CONNECTION_CELLULAR_SERVICE_TYPE_TETHERING = 5,        /**< Tethering */
+       CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION = 6,      /**< Specific application */
 } connection_cellular_service_type_e;
 
 
@@ -110,9 +110,9 @@ typedef enum {
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
 */
 typedef enum {
-       CONNECTION_CELLULAR_AUTH_TYPE_NONE = 0, /**< No authentication */
-       CONNECTION_CELLULAR_AUTH_TYPE_PAP  = 1, /**< PAP authentication */
-       CONNECTION_CELLULAR_AUTH_TYPE_CHAP = 2, /**< CHAP authentication */
+       CONNECTION_CELLULAR_AUTH_TYPE_NONE = 0,     /**< No authentication */
+       CONNECTION_CELLULAR_AUTH_TYPE_PAP  = 1,     /**< PAP authentication */
+       CONNECTION_CELLULAR_AUTH_TYPE_CHAP = 2,     /**< CHAP authentication */
 } connection_cellular_auth_type_e;
 
 
@@ -139,10 +139,10 @@ typedef void* connection_profile_h;
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
 */
 typedef enum {
-       CONNECTION_PROFILE_STATE_DISCONNECTED = 0, /**< Disconnected state */
-       CONNECTION_PROFILE_STATE_ASSOCIATION = 1, /**< Association state */
-       CONNECTION_PROFILE_STATE_CONFIGURATION = 2, /**< Configuration state */
-       CONNECTION_PROFILE_STATE_CONNECTED = 3, /**< Connected state */
+       CONNECTION_PROFILE_STATE_DISCONNECTED = 0,   /**< Disconnected state */
+       CONNECTION_PROFILE_STATE_ASSOCIATION = 1,    /**< Association state */
+       CONNECTION_PROFILE_STATE_CONFIGURATION = 2,  /**< Configuration state */
+       CONNECTION_PROFILE_STATE_CONNECTED = 3,      /**< Connected state */
 } connection_profile_state_e;
 
 
@@ -151,8 +151,8 @@ typedef enum {
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
 */
 typedef enum {
-       CONNECTION_ADDRESS_FAMILY_IPV4 = 0, /**< IPV4 Address type */
-       CONNECTION_ADDRESS_FAMILY_IPV6 = 1, /**< IPV6 Address type */
+       CONNECTION_ADDRESS_FAMILY_IPV4 = 0,    /**< IPV4 Address type */
+       CONNECTION_ADDRESS_FAMILY_IPV6 = 1,    /**< IPV6 Address type */
 } connection_address_family_e;
 
 
@@ -161,11 +161,31 @@ typedef enum {
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
 */
 typedef enum {
-       CONNECTION_IP_CONFIG_TYPE_NONE = 0, /**< Not defined */
-       CONNECTION_IP_CONFIG_TYPE_STATIC  = 1, /**< Manual IP configuration */
-       CONNECTION_IP_CONFIG_TYPE_DYNAMIC = 2, /**< Config IP using DHCP client*/
-       CONNECTION_IP_CONFIG_TYPE_AUTO = 3, /**< Config IP from Auto IP pool (169.254/16). Later with DHCP client, if available */
-       CONNECTION_IP_CONFIG_TYPE_FIXED = 4, /**< Indicates an IP address that can not be modified */
+       /**
+        * Not defined
+        */
+       CONNECTION_IP_CONFIG_TYPE_NONE = 0,
+
+       /**
+        * Manual IP configuration
+        */
+       CONNECTION_IP_CONFIG_TYPE_STATIC  = 1,
+
+       /**
+        * Config IP using DHCP client
+        */
+       CONNECTION_IP_CONFIG_TYPE_DYNAMIC = 2,
+
+       /**
+        * Config IP from Auto IP pool (169.254/16). Later with DHCP client, if available
+        */
+       CONNECTION_IP_CONFIG_TYPE_AUTO = 3,
+
+       /**
+        * Indicates an IP address that can not be modified
+        */
+       CONNECTION_IP_CONFIG_TYPE_FIXED = 4,
+
 } connection_ip_config_type_e;
 
 
@@ -174,9 +194,22 @@ typedef enum {
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
 */
 typedef enum {
-       CONNECTION_PROXY_TYPE_DIRECT = 0, /**< Direct connection */
-       CONNECTION_PROXY_TYPE_AUTO = 1, /**< Auto configuration(Use PAC file). If URL property is not set, DHCP/WPAD auto-discover will be tried */
-       CONNECTION_PROXY_TYPE_MANUAL  = 2, /**< Manual configuration */
+       /**
+        * Direct connection
+        */
+       CONNECTION_PROXY_TYPE_DIRECT = 0,
+
+       /**
+        * Auto configuration (use PAC file). If URL property is not set,
+        * DHCP/WPAD auto-discover will be tried
+        */
+       CONNECTION_PROXY_TYPE_AUTO = 1,
+
+       /**
+        * Manual configuration
+        */
+       CONNECTION_PROXY_TYPE_MANUAL  = 2,
+
 } connection_proxy_type_e;
 
 /**
@@ -186,7 +219,7 @@ typedef enum {
 typedef enum {
        CONNECTION_DNS_CONFIG_TYPE_NONE = 0,     /**< Not defined */
        CONNECTION_DNS_CONFIG_TYPE_STATIC = 1,   /**< Manual DNS configuration */
-       CONNECTION_DNS_CONFIG_TYPE_DYNAMIC = 2,  /**< Config DNS using DHCP client*/
+       CONNECTION_DNS_CONFIG_TYPE_DYNAMIC = 2,  /**< Config DNS using DHCP client */
 } connection_dns_config_type_e;
 
 /**
@@ -194,45 +227,47 @@ typedef enum {
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
 */
 typedef enum {
-       CONNECTION_PROFILE_TYPE_CELLULAR = 0, /**< Cellular type */
-       CONNECTION_PROFILE_TYPE_WIFI = 1, /**< Wi-Fi type */
-       CONNECTION_PROFILE_TYPE_ETHERNET = 2, /**< Ethernet type */
-       CONNECTION_PROFILE_TYPE_BT = 3, /**< Bluetooth type */
+       CONNECTION_PROFILE_TYPE_CELLULAR = 0,    /**< Cellular type */
+       CONNECTION_PROFILE_TYPE_WIFI = 1,        /**< Wi-Fi type */
+       CONNECTION_PROFILE_TYPE_ETHERNET = 2,    /**< Ethernet type */
+       CONNECTION_PROFILE_TYPE_BT = 3,          /**< Bluetooth type */
 } connection_profile_type_e;
 
 
 /**
  * @brief Creates a profile handle.
- * @details The profile name, which you get from connection_profile_get_name(), will include the keyword you set.
+ * @details The profile name, which you get from connection_profile_get_name()
+ *          will include the keyword you set.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/network.get
  * @remarks You must release @a profile using connection_profile_destroy().
- * @param[in] type The type of profile \n
- *                        #CONNECTION_PROFILE_TYPE_CELLULAR and #CONNECTION_PROFILE_TYPE_WIFI are supported
- * @param[in] keyword The keyword included in profile name
- * @param[out] profile The handle of the profile
+ * @param[in] type               The type of profile \n
+ *            #CONNECTION_PROFILE_TYPE_CELLULAR and #CONNECTION_PROFILE_TYPE_WIFI are supported
+ * @param[in] keyword            The keyword included in profile name
+ * @param[out] profile           The handle of the profile
  * @return @c 0 on success,
  *         otherwise negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission Denied
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
  * @see connection_profile_destroy()
  * @see connection_profile_get_name()
 */
-int connection_profile_create(connection_profile_type_e type, const char* keyword, connection_profile_h* profile);
+int connection_profile_create(connection_profile_type_e type,
+               const char *keyword, connection_profile_h *profile);
 
 
 /**
  * @brief Destroys a profile handle.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[out] profile The handle to the profile
+ * @param[out] profile           The handle to the profile
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
  * @see connection_profile_create()
 */
 int connection_profile_destroy(connection_profile_h profile);
@@ -242,81 +277,84 @@ int connection_profile_destroy(connection_profile_h profile);
  * @brief Clones a profile handle.
  * @since_tizen 2.3
  * @remarks You must release @a cloned_profile using connection_profile_destroy().
- * @param[out] cloned_profile The handle of the cloned profile
- * @param[in] origin_profile The handle of the origin profile
+ * @param[out] cloned_profile    The handle of the cloned profile
+ * @param[in] origin_profile     The handle of the origin profile
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
  * @see connection_profile_destroy()
 */
-int connection_profile_clone(connection_profile_h* cloned_profile, connection_profile_h origin_profile);
+int connection_profile_clone(connection_profile_h *cloned_profile,
+               connection_profile_h origin_profile);
 
 
 /**
  * @brief Gets the profile ID.
  * @details The separate profiles can have the same name.
- *          So, you must use this API instead of connection_profile_get_name() if you want to get the unique identification.
+ *          So, you must use this API instead of connection_profile_get_name()
+ *          if you want to get the unique identification.
  *          In case you create a profile, this value will be determined when you add the profile.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks You must release @a profile_id using free().
- * @param[in] profile The profile handle
- * @param[out] profile_id The ID of the profile
+ * @param[in] profile            The profile handle
+ * @param[out] profile_id        The ID of the profile
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
  * @see connection_profile_get_name()
  * @see connection_add_profile()
 */
-int connection_profile_get_id(connection_profile_h profile, char** profile_id);
+int connection_profile_get_id(connection_profile_h profile, char **profile_id);
 
 
 /**
  * @brief Gets the profile name.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks You must release @a profile_name using free().
- * @param[in] profile The profile handle
- * @param[out] profile_name The name of the profile
+ * @param[in] profile           The profile handle
+ * @param[out] profile_name     The name of the profile
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
  * @see connection_profile_get_id()
 */
-int connection_profile_get_name(connection_profile_h profile, char** profile_name);
+int connection_profile_get_name(connection_profile_h profile, char **profile_name);
 
 
 /**
  * @brief Gets the network type.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[out] type The type of the profile
+ * @param[in] profile           The profile handle
+ * @param[out] type             The type of the profile
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
 */
-int connection_profile_get_type(connection_profile_h profile, connection_profile_type_etype);
+int connection_profile_get_type(connection_profile_h profile, connection_profile_type_e *type);
 
 
 /**
  * @brief Gets the name of the network interface, e.g. eth0 and pdp0.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks You must release @a interface_name using free().
- * @param[in] profile The profile handle
- * @param[out] interface_name The name of the network interface
+ * @param[in] profile           The profile handle
+ * @param[out] interface_name   The name of the network interface
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
 */
-int connection_profile_get_network_interface_name(connection_profile_h profile, char** interface_name);
+int connection_profile_get_network_interface_name(connection_profile_h profile,
+               char **interface_name);
 
 
 /**
@@ -324,15 +362,16 @@ int connection_profile_get_network_interface_name(connection_profile_h profile,
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/network.get
- * @remarks You should call this function in order to get the current information because the profile information can be changed.
- * @param[in] profile The profile handle
+ * @remarks You should call this function in order to get the current information
+ *          because the profile information can be changed.
+ * @param[in] profile           The profile handle
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission Denied
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY         Out of memory
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
 */
 int connection_profile_refresh(connection_profile_h profile);
 
@@ -340,136 +379,161 @@ int connection_profile_refresh(connection_profile_h profile);
 /**
  * @brief Gets the network type.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[out] state The state of the profile
+ * @param[in] profile           The profile handle
+ * @param[out] state            The state of the profile
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
 */
-int connection_profile_get_state(connection_profile_h profile, connection_profile_state_e* state);
+int connection_profile_get_state(connection_profile_h profile,
+               connection_profile_state_e *state);
 
 
 /**
  * @brief Gets the IP config type.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] address_family The address family
- * @param[out] type The type of the IP config
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[out] type             The type of the IP config
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
 */
-int connection_profile_get_ip_config_type(connection_profile_h profile, connection_address_family_e address_family, connection_ip_config_type_e* type);
+int connection_profile_get_ip_config_type(connection_profile_h profile,
+               connection_address_family_e address_family, connection_ip_config_type_e *type);
 
 
 /**
  * @brief Gets the IP address.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks You must release @a ip_address using free().
- * @param[in] profile The profile handle
- * @param[in] address_family The address family
- * @param[out] ip_address The IP address
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[out] ip_address       The IP address
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY                  Out of memory
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
 */
-int connection_profile_get_ip_address(connection_profile_h profile, connection_address_family_e address_family, char** ip_address);
+int connection_profile_get_ip_address(connection_profile_h profile,
+               connection_address_family_e address_family, char **ip_address);
 
 
 /**
  * @brief Gets the Subnet Mask.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks You must release @a subnet_mask using free().
- * @param[in] profile The profile handle
- * @param[in] address_family The address family
- * @param[out] subnet_mask The subnet mask
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[out] subnet_mask      The subnet mask
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY                  Out of memory
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
 */
-int connection_profile_get_subnet_mask(connection_profile_h profile, connection_address_family_e address_family, char** subnet_mask);
+int connection_profile_get_subnet_mask(connection_profile_h profile,
+               connection_address_family_e address_family, char **subnet_mask);
 
 
 /**
  * @brief Gets the Gateway address.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks You must release @a gateway_address using free().
- * @param[in] profile The profile handle
- * @param[in] address_family The address family
- * @param[out] gateway_address The gateway address
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[out] gateway_address  The gateway address
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY                  Out of memory
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
 */
-int connection_profile_get_gateway_address(connection_profile_h profile, connection_address_family_e address_family, char** gateway_address);
+int connection_profile_get_gateway_address(connection_profile_h profile,
+               connection_address_family_e address_family, char **gateway_address);
 
+/**
+ * @brief Gets the DHCP Server address.
+ * @since_tizen 4.0
+ * @remarks You must release @a dhcp_server using free().
+ *          This function is supported only for IPv4 address family.
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[out] dhcp_server      The DHCP Server address
+ * @return @c 0 on success, otherwise a negative error value
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY                  Out of memory
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
+*/
+int connection_profile_get_dhcp_server_address(connection_profile_h profile,
+               connection_address_family_e address_family, char **dhcp_server);
 
 /**
  * @brief Gets the DNS address.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks The allowance of the DNS address is @c 2. You must release @a dns_address using free().
- * @param[in] profile The profile handle
- * @param[in] order The order of DNS address \n
- *                         it starts from 1, which means first DNS address
- * @param[in] address_family The address family
- * @param[out] dns_address The DNS address
+ * @param[in] profile           The profile handle
+ * @param[in] order             The order of DNS address \n
+ *            It starts from 1, which means first DNS address
+ * @param[in] address_family    The address family
+ * @param[out] dns_address      The DNS address
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY                  Out of memory
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
 */
-int connection_profile_get_dns_address(connection_profile_h profile, int order, connection_address_family_e address_family, char** dns_address);
+int connection_profile_get_dns_address(connection_profile_h profile,
+               int order, connection_address_family_e address_family, char **dns_address);
 
 
 /**
  * @brief Gets the Proxy type.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[out] type The type of the proxy
+ * @param[in] profile           The profile handle
+ * @param[out] type             The type of the proxy
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
 */
-int connection_profile_get_proxy_type(connection_profile_h profile, connection_proxy_type_e* type);
+int connection_profile_get_proxy_type(connection_profile_h profile,
+               connection_proxy_type_e *type);
 
 
 /**
  * @brief Gets the Proxy address.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks You must release @a proxy_address using free().
- * @param[in] profile The profile handle
- * @param[in] address_family The address family
- * @param[out] proxy_address The proxy address
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[out] proxy_address    The proxy address
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY                  Out of memory
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
 */
-int connection_profile_get_proxy_address(connection_profile_h profile, connection_address_family_e address_family, char** proxy_address);
+int connection_profile_get_proxy_address(connection_profile_h profile,
+               connection_address_family_e address_family, char **proxy_address);
 
 
 /**
@@ -477,163 +541,179 @@ int connection_profile_get_proxy_address(connection_profile_h profile, connectio
  * @details If you set IP config type to #CONNECTION_IP_CONFIG_TYPE_STATIC,
  *          then IP address, Gateway and Subnet mask will be set to the initial value "0.0.0.0".
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] address_family The address family
- * @param[in] type The type of the IP config
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[in] type              The type of the IP config
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
 */
-int connection_profile_set_ip_config_type(connection_profile_h profile, connection_address_family_e address_family, connection_ip_config_type_e type);
+int connection_profile_set_ip_config_type(connection_profile_h profile,
+               connection_address_family_e address_family, connection_ip_config_type_e type);
 
 
 /**
  * @brief Sets the IP address.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] address_family The address family
- * @param[in] ip_address The IP address. \n
- *                                  If you set this value to @c NULL, then the existing value will be deleted
+ * @remarks You must release @a ip_address using free().
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[in] ip_address        The IP address \n
+ *            If you set this value to @c NULL, then the existing value will be deleted
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED  Not supported address family
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
  * @see connection_update_profile()
 */
-int connection_profile_set_ip_address(connection_profile_h profile, connection_address_family_e address_family, const char* ip_address);
+int connection_profile_set_ip_address(connection_profile_h profile,
+               connection_address_family_e address_family, const char *ip_address);
 
 
 /**
  * @brief Sets the Subnet Mask.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] address_family The address family
- * @param[in] subnet_mask The subnet mask. \n
- *                                   If you set this value to @c NULL, then the existing value will be deleted
+ * @remarks You must release @a subnet_mask using free().
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[in] subnet_mask       The subnet mask \n
+ *            If you set this value to @c NULL, then the existing value will be deleted
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
  * @see connection_update_profile()
 */
-int connection_profile_set_subnet_mask(connection_profile_h profile, connection_address_family_e address_family, const char* subnet_mask);
+int connection_profile_set_subnet_mask(connection_profile_h profile,
+               connection_address_family_e address_family, const char *subnet_mask);
 
 
 /**
  * @brief Sets the Gateway address.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] address_family The address family
- * @param[in] gateway_address The gateway address. \n
- *                                       If you set this value to @c NULL, then the existing value will be deleted
+ * @remarks You must release @a gateway_address using free().
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[in] gateway_address   The gateway address \n
+ *            If you set this value to @c NULL, then the existing value will be deleted
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
  * @see connection_update_profile()
 */
-int connection_profile_set_gateway_address(connection_profile_h profile, connection_address_family_e address_family, const char* gateway_address);
+int connection_profile_set_gateway_address(connection_profile_h profile,
+               connection_address_family_e address_family, const char *gateway_address);
 
 
 /**
  * @brief Sets the DNS address.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks The allowance of the DNS address is @c 2.
- * @param[in] profile The profile handle
- * @param[in] order The order of the DNS address. \n
- *                         It starts from @c 1, which means first DNS address
- * @param[in] address_family The address family
- * @param[in] dns_address The DNS address; if you set this value to NULL, then the existing value will be deleted
+ * @remarks You must release @a dns_address using free().
+ * @param[in] profile           The profile handle
+ * @param[in] order             The order of the DNS address \n
+ *            It starts from @c 1, which means first DNS address
+ * @param[in] address_family    The address family
+ * @param[in] dns_address       The DNS address \n
+ *            If you set this value to NULL then the existing value will be deleted
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
  * @see connection_update_profile()
 */
-int connection_profile_set_dns_address(connection_profile_h profile, int order, connection_address_family_e address_family, const char* dns_address);
+int connection_profile_set_dns_address(connection_profile_h profile,
+               int order, connection_address_family_e address_family, const char *dns_address);
 
 
 /**
  * @brief Sets the Proxy type.
- * @details If you set the Proxy type to #CONNECTION_PROXY_TYPE_AUTO or #CONNECTION_PROXY_TYPE_MANUAL, then Proxy will be restored.
+ * @details If you set the Proxy type to #CONNECTION_PROXY_TYPE_AUTO or
+ *          #CONNECTION_PROXY_TYPE_MANUAL, then Proxy will be restored.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] type The type of the proxy
+ * @param[in] profile           The profile handle
+ * @param[in] type              The type of the proxy
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
  * @see connection_update_profile()
 */
-int connection_profile_set_proxy_type(connection_profile_h profile, connection_proxy_type_e type);
+int connection_profile_set_proxy_type(connection_profile_h profile,
+               connection_proxy_type_e type);
 
 
 /**
  * @brief Sets the Proxy address.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] address_family The address family
- * @param[in] proxy_address The proxy address. \n
- *                                     If you set this value to @c NULL, then the existing value will be deleted
+ * @remarks You must release @a proxy_address using free().
+ * @param[in] profile           The profile handle
+ * @param[in] address_family    The address family
+ * @param[in] proxy_address     The proxy address \n
+ *            If you set this value to @c NULL, then the existing value will be deleted
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                           Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER              Invalid parameter
+ * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED   Not supported address family
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED               Operation failed
  * @see connection_update_profile()
 */
-int connection_profile_set_proxy_address(connection_profile_h profile, connection_address_family_e address_family, const char* proxy_address);
+int connection_profile_set_proxy_address(connection_profile_h profile,
+               connection_address_family_e address_family, const char *proxy_address);
 
 
 /**
  * @brief Called when the state of the profile is changed.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] state The state
- * @param[in] user_data The user data passed from the callback registration function
+ * @param[in] state             The state
+ * @param[in] user_data         The user data passed from the callback registration function
  * @see connection_profile_set_state_changed_cb()
  * @see connection_profile_unset_state_changed_cb()
 */
-typedef void(*connection_profile_state_changed_cb)(connection_profile_state_e state, void* user_data);
+typedef void(*connection_profile_state_changed_cb)(connection_profile_state_e state,
+               void *user_data);
 
 
 /**
  * @brief Registers the callback that is called when the state of profile is changed.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] callback The callback function to be called
- * @param[in] user_data The user data passed to the callback function
+ * @param[in] profile           The profile handle
+ * @param[in] callback          The callback function to be called
+ * @param[in] user_data         The user data passed to the callback function
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
  * @post connection_opened_cb() is invoked when the state of profile is changed.
  * @see connection_profile_state_changed_cb()
  * @see connection_profile_unset_state_changed_cb()
 */
-int connection_profile_set_state_changed_cb(connection_profile_h profile, connection_profile_state_changed_cb callback, void* user_data);
+int connection_profile_set_state_changed_cb(connection_profile_h profile,
+               connection_profile_state_changed_cb callback, void *user_data);
 
 
 /**
  * @brief Unregisters the callback that is called when the state of profile is changed.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
+ * @param[in] profile           The profile handle
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
  * @see connection_profile_state_changed_cb()
  * @see connection_profile_set_state_changed_cb()
 */
@@ -642,15 +722,16 @@ int connection_profile_unset_state_changed_cb(connection_profile_h profile);
 /**
  * @brief Gets the IPv6 network state.
  * @since_tizen 4.0
- * @param[in] profile The profile handle
- * @param[out] state  The profile state
- * @return 0 on success, otherwise negative error value.
- * @retval #CONNECTION_ERROR_NONE               Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
+ * @param[in] profile           The profile handle
+ * @param[out] state            The profile state
+ * @return 0 on success, otherwise negative error value
+ * @retval #CONNECTION_ERROR_NONE                  Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
  */
-int connection_profile_get_ipv6_state(connection_profile_h profile, connection_profile_state_e *state);
+int connection_profile_get_ipv6_state(connection_profile_h profile,
+               connection_profile_state_e *state);
 
 /**
  * @brief Sets the DNS config type.
@@ -658,7 +739,7 @@ int connection_profile_get_ipv6_state(connection_profile_h profile, connection_p
  * @param[in] profile         The profile handle
  * @param[in] address_family  The address family
  * @param[in] type            The DNS config type
- * @return 0 on success, otherwise negative error value.
+ * @return 0 on success, otherwise negative error value
  * @retval #CONNECTION_ERROR_NONE               Successful
  * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
  * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
@@ -673,7 +754,7 @@ int connection_profile_set_dns_config_type(connection_profile_h profile,
  * @param[in] profile         The profile handle
  * @param[in] address_family  The address family
  * @param[out] type           The DNS config type
- * @return 0 on success, otherwise negative error value.
+ * @return 0 on success, otherwise negative error value
  * @retval #CONNECTION_ERROR_NONE               Successful
  * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
  * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
@@ -687,7 +768,7 @@ int connection_profile_get_dns_config_type(connection_profile_h profile,
  * @since_tizen 4.0
  * @param[in] profile         The profile handle
  * @param[in] address_family  The address family
- * @param[out] prefix_len     The network prefix length.
+ * @param[out] prefix_len     The network prefix length \n
  *                            In case of IPv4, it means netmask length
  *                            (also called a prefix, e.g. 8, 16, 24, 32)
  * @return 0 on success, otherwise negative error value.
@@ -704,10 +785,10 @@ int connection_profile_get_prefix_length(connection_profile_h profile,
  * @since_tizen 4.0
  * @param[in] profile         The profile handle
  * @param[in] address_family  The address family
- * @param[in] prefix_len      The network prefix length.
+ * @param[in] prefix_len      The network prefix length
  *                            In case of IPv4, it means netmask length
  *                            (also called a prefix, e.g. 8, 16, 24, 32)
- * @return 0 on success, otherwise negative error value.
+ * @return 0 on success, otherwise negative error value
  * @retval #CONNECTION_ERROR_NONE               Successful
  * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
  * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
@@ -732,151 +813,157 @@ int connection_profile_set_prefix_length(connection_profile_h profile,
  * @brief Gets the ESSID (Extended Service Set Identifier).
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks You must release @a essid using free().
- * @param[in] profile The profile handle
- * @param[out] essid The ESSID
+ * @param[in] profile         The profile handle
+ * @param[out] essid          The ESSID
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY      Out of memory
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_get_wifi_essid(connection_profile_h profile, char** essid);
+int connection_profile_get_wifi_essid(connection_profile_h profile, char **essid);
 
 
 /**
  * @brief Gets the BSSID (Basic Service Set Identifier).
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks You must release @a bssid using free().
- * @param[in] profile The profile handle
- * @param[out] bssid The BSSID
+ * @param[in] profile         The profile handle
+ * @param[out] bssid          The BSSID
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY      Out of memory
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_get_wifi_bssid(connection_profile_h profile, char** bssid);
+int connection_profile_get_wifi_bssid(connection_profile_h profile, char **bssid);
 
 
 /**
  * @brief Gets the RSSI.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[out] rssi The RSSI
+ * @param[in] profile         The profile handle
+ * @param[out] rssi           The RSSI
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_get_wifi_rssi(connection_profile_h profile, intrssi);
+int connection_profile_get_wifi_rssi(connection_profile_h profile, int *rssi);
 
 
 /**
  * @brief Gets the frequency (MHz).
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[out] frequency The frequency
+ * @param[in] profile         The profile handle
+ * @param[out] frequency      The frequency
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_get_wifi_frequency(connection_profile_h profile, intfrequency);
+int connection_profile_get_wifi_frequency(connection_profile_h profile, int *frequency);
 
 
 /**
  * @brief Gets the max speed (Mbps).
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[out] max_speed The max speed
+ * @param[in] profile         The profile handle
+ * @param[out] max_speed      The max speed
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_get_wifi_max_speed(connection_profile_h profile, intmax_speed);
+int connection_profile_get_wifi_max_speed(connection_profile_h profile, int *max_speed);
 
 
 /**
  * @brief Gets the security mode of Wi-Fi.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[out] type The type of Wi-Fi security
+ * @param[in] profile         The profile handle
+ * @param[out] type           The type of Wi-Fi security
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_get_wifi_security_type(connection_profile_h profile, connection_wifi_security_type_e* type);
+int connection_profile_get_wifi_security_type(connection_profile_h profile,
+               connection_wifi_security_type_e *type);
 
 
 /**
  * @brief Gets the security mode of Wi-Fi.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[out] type The type of Wi-Fi security
+ * @param[in] profile         The profile handle
+ * @param[out] type           The type of Wi-Fi security
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_get_wifi_encryption_type(connection_profile_h profile, connection_wifi_encryption_type_e* type);
+int connection_profile_get_wifi_encryption_type(connection_profile_h profile,
+               connection_wifi_encryption_type_e *type);
 
 
 /**
  * @brief Checks whether passphrase is required.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks This function is not valid if security type is #CONNECTION_WIFI_SECURITY_TYPE_EAP.
- * @param[in] profile The profile handle
- * @param[out] required @c true if a passphrase is required,
- *                      otherwise @c false if a passphrase is not required
+ * @param[in] profile         The profile handle
+ * @param[out] required       @c true if a passphrase is required,
+ *                            otherwise @c false if a passphrase is not required
  * @return @c 0 on success,
  *         otherwise a negative error value
  * @retval #CONNECTION_ERROR_NONE Successful
  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
 */
-int connection_profile_is_wifi_passphrase_required(connection_profile_h profile, bool* required);
+int connection_profile_is_wifi_passphrase_required(connection_profile_h profile,
+               bool *required);
 
 
 /**
  * @brief Sets the passphrase of the Wi-Fi WPA.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] passphrase The passphrase of Wi-Fi security
+ * @remarks You must release @a passphrase using free().
+ * @param[in] profile         The profile handle
+ * @param[in] passphrase      The passphrase of Wi-Fi security
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
  * @see connection_update_profile()
 */
-int connection_profile_set_wifi_passphrase(connection_profile_h profile, const char* passphrase);
+int connection_profile_set_wifi_passphrase(connection_profile_h profile,
+               const char *passphrase);
 
 
 /**
  * @brief Checks whether the WPS (Wi-Fi Protected Setup) is supported.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks If WPS is supported, you can connect the access point with WPS by wifi_connect_with_wps().
- * @param[in] profile The profile handle
- * @param[out] supported @c true if WPS is supported,
- *                       otherwise @c false if WPS is not supported
+ * @param[in] profile         The profile handle
+ * @param[out] supported      @c true if WPS is supported,
+ *                            otherwise @c false if WPS is not supported
  * @return @c 0 on success,
  *         otherwise negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_is_wifi_wps_supported(connection_profile_h profile, bool* supported);
+int connection_profile_is_wifi_wps_supported(connection_profile_h profile,
+               bool *supported);
 
 
 /**
@@ -893,249 +980,266 @@ int connection_profile_is_wifi_wps_supported(connection_profile_h profile, bool*
 /**
  * @brief Gets the service type.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[out] type The type of the cellular service
+ * @param[in] profile         The profile handle
+ * @param[out] type           The type of the cellular service
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_get_cellular_service_type(connection_profile_h profile, connection_cellular_service_type_e* type);
+int connection_profile_get_cellular_service_type(connection_profile_h profile,
+               connection_cellular_service_type_e *type);
 
 
 /**
  * @brief Gets the APN (access point name).
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks You must release @a apn using free().
- * @param[in] profile The profile handle
- * @param[out] apn The name of the APN
+ * @param[in] profile         The profile handle
+ * @param[out] apn            The name of the APN
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY      Out of memory
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_get_cellular_apn(connection_profile_h profile, char** apn);
+int connection_profile_get_cellular_apn(connection_profile_h profile, char **apn);
 
 
 /**
  * @brief Gets the authentication information.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks You must release @a user_name and @a password using free().
- * @param[in] profile The profile handle
- * @param[out] type The type of the authentication
- * @param[out] user_name The user name
- * @param[out] password The password
+ * @param[in] profile         The profile handle
+ * @param[out] type           The type of the authentication
+ * @param[out] user_name      The user name
+ * @param[out] password       The password
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY      Out of memory
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_get_cellular_auth_info(connection_profile_h profile, connection_cellular_auth_type_e* type, char** user_name, char** password);
+int connection_profile_get_cellular_auth_info(connection_profile_h profile,
+               connection_cellular_auth_type_e *type, char **user_name, char **password);
 
 
 /**
  * @brief Gets the home URL.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks You must release @a home_url using free().
- * @param[in] profile The profile handle
- * @param[out] home_url The home URL
+ * @param[in] profile         The profile handle
+ * @param[out] home_url       The home URL
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OUT_OF_MEMORY      Out of memory
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_get_cellular_home_url(connection_profile_h profile, char** home_url);
+int connection_profile_get_cellular_home_url(connection_profile_h profile,
+               char **home_url);
 
 
 /**
  * @brief Gets the cellular pdn type.
  * @since_tizen 3.0
- * @param[in] profile The profile handle
- * @param[out] type The cellular pdn type
+ * @param[in] profile         The profile handle
+ * @param[out] type           The cellular pdn type
  * @return @c 0 on success,
  *         otherwise negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not Supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not suppported
 */
-int connection_profile_get_cellular_pdn_type(connection_profile_h profile, connection_cellular_pdn_type_e* type);
+int connection_profile_get_cellular_pdn_type(connection_profile_h profile,
+               connection_cellular_pdn_type_e *type);
 
 
 /**
  * @brief Gets the cellular roam pdn type.
  * @since_tizen 3.0
- * @param[in] profile The profile handle
- * @param[out] type The cellular pdn type
+ * @param[in] profile         The profile handle
+ * @param[out] type           The cellular pdn type
  * @return @c 0 on success,
  *         otherwise negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not Supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_get_cellular_roam_pdn_type(connection_profile_h profile, connection_cellular_pdn_type_e* type);
+int connection_profile_get_cellular_roam_pdn_type(connection_profile_h profile,
+               connection_cellular_pdn_type_e *type);
 
 
 /**
  * @brief Checks whether the connection is in roaming state.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[out] is_roaming @c true if the cellular is roaming,
- *                        otherwise @c false if it is not roaming
+ * @param[in] profile         The profile handle
+ * @param[out] is_roaming     @c true if the cellular is roaming,
+ *                            otherwise @c false if it is not roaming
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_is_cellular_roaming(connection_profile_h profile, bool* is_roaming);
+int connection_profile_is_cellular_roaming(connection_profile_h profile,
+               bool *is_roaming);
 
 
 /**
  * @brief Checks whether the profile is hidden.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[out] is_hidden @c true if the profile is in hidden,
- *                       otherwise @c false if the profile is not hidden
+ * @param[in] profile         The profile handle
+ * @param[out] is_hidden      @c true if the profile is in hidden,
+ *                            otherwise @c false if the profile is not hidden
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_is_cellular_hidden(connection_profile_h profile, bool* is_hidden);
+int connection_profile_is_cellular_hidden(connection_profile_h profile,
+               bool *is_hidden);
 
 
 /**
  * @brief Checks whether the profile is editable.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile  The profile handle
- * @param[out] is_editable @c true if the profile is editable,
- *                         otherwise @c false if the profile is not editable
+ * @param[in] profile         The profile handle
+ * @param[out] is_editable    @c true if the profile is editable,
+ *                            otherwise @c false if the profile is not editable
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_is_cellular_editable(connection_profile_h profile, bool* is_editable);
+int connection_profile_is_cellular_editable(connection_profile_h profile,
+               bool *is_editable);
 
 
 /**
  * @brief Checks whether the profile is default.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[out] is_default @c true if the profile is default,
- *                        otherwise @c false if the profile is not default
+ * @param[in] profile         The profile handle
+ * @param[out] is_default     @c true if the profile is default,
+ *                            otherwise @c false if the profile is not default
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_is_cellular_default(connection_profile_h profile, bool* is_default);
+int connection_profile_is_cellular_default(connection_profile_h profile,
+               bool *is_default);
 
 
 /**
  * @brief Sets the service type.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] service_type The type of cellular service
+ * @param[in] profile         The profile handle
+ * @param[in] service_type    The type of cellular service
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
  * @see connection_update_profile()
 */
-int connection_profile_set_cellular_service_type(connection_profile_h profile, connection_cellular_service_type_e service_type);
+int connection_profile_set_cellular_service_type(connection_profile_h profile,
+               connection_cellular_service_type_e service_type);
 
 
 /**
  * @brief Sets the APN (Access Point Name).
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] apn The name of APN
+ * @remarks You must release @a spn using free().
+ * @param[in] profile         The profile handle
+ * @param[in] apn             The name of APN
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
  * @see connection_update_profile()
 */
-int connection_profile_set_cellular_apn(connection_profile_h profile, const charapn);
+int connection_profile_set_cellular_apn(connection_profile_h profile, const char *apn);
 
 
 /**
  * @brief Sets the Authentication information.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] type The type of the authentication
- * @param[in] user_name The user name
- * @param[in] password The password
+ * @remarks You must release @a user_name using free().
+ * @param[in] profile         The profile handle
+ * @param[in] type            The type of the authentication
+ * @param[in] user_name       The user name
+ * @param[in] password        The password
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
  * @see connection_update_profile()
 */
-int connection_profile_set_cellular_auth_info(connection_profile_h profile, connection_cellular_auth_type_e type, const char* user_name, const char* password);
+int connection_profile_set_cellular_auth_info(connection_profile_h profile,
+               connection_cellular_auth_type_e type, const char *user_name, const char *password);
 
 
 /**
  * @brief Sets the home URL.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] profile The profile handle
- * @param[in] home_url The home URL
+ * @remarks You must release @a home_url using free().
+ * @param[in] profile         The profile handle
+ * @param[in] home_url        The home URL
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
  * @see connection_update_profile()
 */
-int connection_profile_set_cellular_home_url(connection_profile_h profile, const char* home_url);
+int connection_profile_set_cellular_home_url(connection_profile_h profile,
+               const char *home_url);
 
 
 /**
  * @brief Sets the cellular pdn type.
  * @since_tizen 3.0
- * @param[in] profile The profile handle
- * @param[in] type The cellular pdn type
+ * @param[in] profile         The profile handle
+ * @param[in] type            The cellular pdn type
  * @return @c 0 on success,
  *         otherwise negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not Supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_set_cellular_pdn_type(connection_profile_h profile, connection_cellular_pdn_type_e type);
+int connection_profile_set_cellular_pdn_type(connection_profile_h profile,
+               connection_cellular_pdn_type_e type);
 
 
 /**
  * @brief Sets the cellular roam pdn type.
  * @since_tizen 3.0
- * @param[in] profile The profile handle
- * @param[in] type The cellular pdn type
+ * @param[in] profile         The profile handle
+ * @param[in] type            The cellular pdn type
  * @return @c 0 on success,
  *         otherwise negative error value
- * @retval #CONNECTION_ERROR_NONE Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not Supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
 */
-int connection_profile_set_cellular_roam_pdn_type(connection_profile_h profile, connection_cellular_pdn_type_e type);
+int connection_profile_set_cellular_roam_pdn_type(connection_profile_h profile,
+               connection_cellular_pdn_type_e type);
 
 
 /**
index 59c2394..ae22d41 100755 (executable)
@@ -129,8 +129,16 @@ typedef enum {
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
 */
 typedef enum {
-       CONNECTION_RESET_DEFAULT_PROFILE = 0,  /**< Initialized with the default profile defined by csc */
-       CONNECTION_RESET_CLEAR_PROFILE = 1,    /**< Remove all profiles */
+       /**
+        * Initialized with the default profile defined by csc
+        */
+       CONNECTION_RESET_DEFAULT_PROFILE = 0,
+
+       /**
+        * Remove all profiles
+        */
+       CONNECTION_RESET_CLEAR_PROFILE = 1,
+
 } connection_reset_option_e;
 
 
@@ -155,12 +163,12 @@ typedef enum {
        CONNECTION_ERROR_NONE = TIZEN_ERROR_NONE,
 
        /**
-        *Invalid parameter
+        * Invalid parameter
         */
        CONNECTION_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER,
 
        /**
-        *   Out of memory error
+        * Out of memory error
         */
        CONNECTION_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY,
 
@@ -170,12 +178,12 @@ typedef enum {
        CONNECTION_ERROR_INVALID_OPERATION = TIZEN_ERROR_INVALID_OPERATION,
 
        /**
-        * Address family         Not supported
+        * Address family not supported
         */
        CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED = TIZEN_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED,
 
        /**
-        *      Operation failed
+        * Operation failed
         */
        CONNECTION_ERROR_OPERATION_FAILED = TIZEN_ERROR_CONNECTION|0x0401,
 
@@ -220,12 +228,12 @@ typedef enum {
        CONNECTION_ERROR_NO_REPLY = TIZEN_ERROR_CONNECTION|0x0408,
 
        /**
-        *     Permission denied
+        * Permission denied
         */
        CONNECTION_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED,
 
        /**
-        *         Not supported
+        * Not supported
         */
        CONNECTION_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED
 
@@ -299,7 +307,7 @@ int connection_destroy(connection_h connection);
  * @brief Called when the type of a connection is changed.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @param[in] type              The type of the current network connection
- * @param[in] user_data The user data passed from the callback registration function
+ * @param[in] user_data         The user data passed from the callback registration function
  * @see connection_set_type_changed_cb()
  * @see connection_unset_type_changed_cb()
  */
@@ -311,7 +319,7 @@ typedef void(*connection_type_changed_cb)(connection_type_e type, void* user_dat
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @param[in] ipv4_address      The IP address for IPv4
  * @param[in] ipv6_address      The IP address for IPv6
- * @param[in] user_data The user data passed from the callback registration function
+ * @param[in] user_data         The user data passed from the callback registration function
  * @see connection_set_ip_address_changed_cb()
  * @see connection_unset_ip_address_changed_cb()
  * @see connection_set_proxy_address_changed_cb()
@@ -337,7 +345,8 @@ typedef void(*connection_set_default_cb)(connection_error_e result, void* user_d
  *            @a ipv6_address will be freed automatically after the execution of this callback.
  * @param[in]  ipv6_address     The IPv6 address
  * @param[in]  user_data        The user data passed from the foreach function
- * @return  @c true to continue with the next iteration of the loop, \n @c false to break out of the loop
+ * @return  @c true to continue with the next iteration of the loop, \n
+ *          @c false to break out of the loop
  * @pre  connection_foreach_ipv6_addresses() will invoke this callback.
  * @see  connection_foreach_ipv6_addresses()
  */
@@ -363,7 +372,7 @@ int connection_get_type(connection_h connection, connection_type_e* type);
  * @remarks You must release @a ip_address using free().
  * @param[in] connection        The connection handle
  * @param[in] address_family    The address family
- * @param[out] ip_address The pointer to the IP address string
+ * @param[out] ip_address       The pointer to the IP address string
  * @return @c 0 on success,
  *         otherwise a negative error value
  * @retval #CONNECTION_ERROR_NONE                           Successful
@@ -381,7 +390,7 @@ int connection_get_ip_address(connection_h connection,
  * @remarks You must release @a proxy using free().
  * @param[in] connection        The connection handle
  * @param[in] address_family    The address family
- * @param[out] proxy The proxy address
+ * @param[out] proxy            The proxy address
  * @return @c 0 on success,
  *         otherwise a negative error value
  * @retval #CONNECTION_ERROR_NONE                           Successful
@@ -443,7 +452,7 @@ int connection_get_cellular_state(connection_h connection, connection_cellular_s
  * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
  * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
  * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED            Not supported
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED             Not supported
  */
 int connection_get_wifi_state(connection_h connection, connection_wifi_state_e* state);
 
@@ -488,7 +497,7 @@ int connection_get_ethernet_cable_state(connection_h connection,
 
 
 /**
- * @deprecated Deprecated since 4.0. Use connection_ethernet_cable_state_changed_cb() instead.
+ * @deprecated Deprecated since 4.0. Use connection_ethernet_cable_state_changed_cb instead.
  * @brief Called when ethernet cable is plugged [in/out].
  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
  * @param[in] state             The state of ethernet cable
@@ -652,8 +661,8 @@ int connection_unset_ip_address_changed_cb(connection_h connection);
  * @brief Registers the callback that is called when the proxy address is changed.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @param[in] connection        The connection handle
- * @param[in] callback The callback function to be called
- * @param[in] user_data The user data passed to the callback function
+ * @param[in] callback          The callback function to be called
+ * @param[in] user_data         The user data passed to the callback function
  * @return @c 0 on success,
  *         otherwise a negative error value
  * @retval #CONNECTION_ERROR_NONE                  Successful
@@ -718,8 +727,10 @@ int connection_remove_profile(connection_h connection, connection_profile_h prof
 
 /**
  * @brief Updates an existing profile.
- * @details When a profile is changed, these changes will be not applied to the Connection Manager immediately.
- *          When you call this function, your changes affect the Connection Manager and the existing profile is updated.
+ * @details When a profile is changed, these changes will be not applied to the
+ *          Connection Manager immediately.
+ *          When you call this function, your changes affect the Connection Manager
+ *          and the existing profile is updated.
  *          In addition, the existing profile will be updated if you call connection_open_profile().
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @privlevel public
@@ -779,7 +790,8 @@ int connection_profile_iterator_next(connection_profile_iterator_h profile_itera
 /**
  * @brief Checks whether the next element of a profile iterator exists or not.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
+ * @remarks The specific error code can be obtained using the get_last_result() method.
+ *          Error codes are described in Exception section.
  * @param[in] profile_iterator  The iterator of profile
  * @return @c true if next element exists,
  *         otherwise @c false if next element doesn't exist
@@ -827,7 +839,7 @@ int connection_get_current_profile(connection_h connection, connection_profile_h
  * @remarks You must release @a profile using connection_profile_destroy().
  * @param[in] connection        The connection handle
  * @param[in] type              The type of cellular service \n
- *                           #CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION is not permitted
+ *            #CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION is not permitted
  * @param[out] profile          The profile handle
  * @return @c 0 on success,
  *         otherwise a negative error value
@@ -847,12 +859,12 @@ int connection_get_default_cellular_service_profile(connection_h connection,
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/network.profile \n
- *               %http://tizen.org/privilege/network.get
+ *            %http://tizen.org/privilege/network.get
  * @remarks This API needs both privileges.
  * @param[in] connection        The connection handle
  * @param[in] type              The type of cellular service \n
- *                        only #CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET and \n
- *                 #CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET are permitted
+ *            Only #CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET and
+ *            #CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET are permitted
  * @param[in] profile           The profile handle
  * @return @c 0 on success,
  *         otherwise a negative error value
@@ -860,7 +872,7 @@ int connection_get_default_cellular_service_profile(connection_h connection,
  * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
  * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
  * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED            Not supported
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
  */
 int connection_set_default_cellular_service_profile(connection_h connection,
                connection_cellular_service_type_e type, connection_profile_h profile);
@@ -874,8 +886,9 @@ int connection_set_default_cellular_service_profile(connection_h connection,
  *               %http://tizen.org/privilege/network.get
  * @remarks This API needs both privileges.
  * @param[in] connection        The connection handle
- * @param[in] type              The type of cellular service (only #CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET \n
- *            and #CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET are permitted)
+ * @param[in] type              The type of cellular service \n
+ *            Only #CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET and
+ *            #CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET are permitted
  * @param[in] profile The profile handle
  * @param[in] callback The callback function to be called
  * @param[in] user_data The user data passed to the callback function
@@ -930,7 +943,7 @@ typedef void(*connection_reset_cb)(connection_error_e result, void* user_data);
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/network.set \n
- *               %http://tizen.org/privilege/network.get
+ *            %http://tizen.org/privilege/network.get
  * @remarks This API needs both privileges.
  * @param[in] connection        The connection handle
  * @param[in] profile           The profile handle
@@ -988,7 +1001,8 @@ int connection_close_profile(connection_h connection, connection_profile_h profi
  * @remarks This API needs both privileges.
  * @param[in] connection        The connection handle
  * @param[in] type              The type of reset
- * @param[in] id                The subscriber identity module ID to reset (The sim index starts from 0.)
+ * @param[in] id                The subscriber identity module ID to reset
+ *                              (The sim index starts from 0.)
  * @param[in] callback          The callback function to be called
  * @param[in] user_data         The user data passed to the callback function
  * @return @c 0 on success,
@@ -997,7 +1011,7 @@ int connection_close_profile(connection_h connection, connection_profile_h profi
  * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
  * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
  * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED            Not supported
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
  * @post connection_reset_cb() will be invoked.
 */
 int connection_reset_profile(connection_h connection, connection_reset_option_e type,
@@ -1005,9 +1019,9 @@ int connection_reset_profile(connection_h connection, connection_reset_option_e
 
 
 /**
- * @deprecated Deprecated since 4.0. Use connection_add_route_entry() instead.
  * @brief Adds a IPv4 route to the routing table.
- * @details You can get the @a interface_name from connection_profile_get_network_interface_name() of opened profile.
+ * @details You can get the @a interface_name from
+ *          connection_profile_get_network_interface_name() of opened profile.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/network.set
@@ -1018,6 +1032,7 @@ int connection_reset_profile(connection_h connection, connection_reset_option_e
  *         otherwise a negative error value
  * @retval #CONNECTION_ERROR_NONE                  Successful
  * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #CONNECTION_ERROR_ALREADY_EXISTS        Already exists
  * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
  * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
  * @see connection_profile_get_network_interface_name()
@@ -1029,7 +1044,8 @@ int connection_add_route(connection_h connection, const char* interface_name,
 /**
  * @deprecated Deprecated since 4.0. Use connection_remove_route_entry() instead.
  * @brief Removes a IPv4 route from the routing table.
- * @details You can get the @a interface_name from connection_profile_get_network_interface_name() of opened profile.
+ * @details You can get the @a interface_name from
+ *          connection_profile_get_network_interface_name() of opened profile.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @privlevel public
  * @privilege %http://tizen.org/privilege/network.set
@@ -1044,14 +1060,14 @@ int connection_add_route(connection_h connection, const char* interface_name,
  * @retval #CONNECTION_ERROR_PERMISSION_DENIED     Permission denied
  * @see connection_profile_get_network_interface_name()
  */
-int connection_remove_route(connection_h connection, const char* interface_name,
-               const char* host_address) TIZEN_DEPRECATED_API;
+int connection_remove_route(connection_h connection, const char* interface_name, const char* host_address);
 
 
 /**
  * @deprecated Deprecated since 4.0. Use connection_add_route_entry() instead.
  * @brief Adds a IPv6 route to the routing table.
- * @details You can get the @a interface_name from connection_profile_get_network_interface_name() of opened profile.
+ * @details You can get the @a interface_name from
+ *          connection_profile_get_network_interface_name() of opened profile.
  * @since_tizen 2.3.1
  * @privlevel public
  * @privilege %http://tizen.org/privilege/network.set
@@ -1075,7 +1091,8 @@ int connection_add_route_ipv6(connection_h connection, const char *interface_nam
 /**
  * @deprecated Deprecated since 4.0. Use connection_remove_route_entry() instead.
  * @brief Removes a IPV6 route from the routing table.
- * @details You can get the @a interface_name from connection_profile_get_network_interface_name() of opened profile.
+ * @details You can get the @a interface_name from
+ *          connection_profile_get_network_interface_name() of opened profile.
  * @since_tizen 2.3.1
  * @privlevel public
  * @privilege %http://tizen.org/privilege/network.set
@@ -1150,15 +1167,15 @@ int connection_remove_route_entry(connection_h connection,
 /*
  * @brief Gets all IPv6 addresses assigned to the network interface.
  * @since_tizen 4.0
- * @param[in] connection        The connection handle
- * @param[in] connection_type   The connection type
- * @param[in] callback          The callback to be called for each IPv6 address
- * @param[in] user_data         The user data passed to the callback function
+ * @param[in] connection       The connection handle
+ * @param[in] connection_type  The connection type
+ * @param[in] callback         The callback to be called for each IPv6 address
+ * @param[in] user_data        The user data passed to the callback function
  * @return 0 on success, otherwise negative error value.
- * @retval #CONNECTION_ERROR_NONE                  Successful
- * @retval #CONNECTION_ERROR_INVALID_PARAMETER     Invalid parameter
- * @retval #CONNECTION_ERROR_OPERATION_FAILED      Operation failed
- * @retval #CONNECTION_ERROR_NOT_SUPPORTED         Not supported
+ * @retval #CONNECTION_ERROR_NONE               Successful
+ * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
+ * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
  */
 int connection_foreach_ipv6_address(connection_h connection, connection_type_e connection_type,
                connection_ipv6_address_cb callback, void *user_data);
@@ -1180,7 +1197,8 @@ int connection_foreach_ipv6_address(connection_h connection, connection_type_e c
  * @privlevel public
  * @privilege %http://tizen.org/privilege/network.get
  * @param[in] connection The connection handle
- * @param[in] connection_type   The type of connection (only CONNECTION_TYPE_WIFI and CONNECTION_TYPE_CELLULAR are supported)
+ * @param[in] connection_type   The type of connection \n
+ *            Only CONNECTION_TYPE_WIFI and CONNECTION_TYPE_CELLULAR are supported
  * @param[in] statistics_type   The type of statistics
  * @param[out] size             The received data size of the last cellular packet data connection (bytes)
  * @return @c 0 on success,
@@ -1202,7 +1220,8 @@ int connection_get_statistics(connection_h connection, connection_type_e connect
  * @privilege %http://tizen.org/privilege/network.set
  * @remarks This API needs both privileges.
  * @param[in] connection        The connection handle
- * @param[in] connection_type   The type of connection (only CONNECTION_TYPE_WIFI and CONNECTION_TYPE_CELLULAR are supported)
+ * @param[in] connection_type   The type of connection \n
+ *            Only CONNECTION_TYPE_WIFI and CONNECTION_TYPE_CELLULAR are supported
  * @param[in] statistics_type   The type of statistics
  * @return @c 0 on success,
  *         otherwise a negative error value
index 7504c52..17d06b3 100755 (executable)
@@ -655,6 +655,41 @@ EXPORT_API int connection_profile_get_gateway_address(connection_profile_h profi
        return CONNECTION_ERROR_NONE;
 }
 
+EXPORT_API int connection_profile_get_dhcp_server_address(
+               connection_profile_h profile,
+               connection_address_family_e address_family, char** dhcp_server)
+{
+       CHECK_FEATURE_SUPPORTED(TELEPHONY_FEATURE, WIFI_FEATURE, TETHERING_BLUETOOTH_FEATURE, ETHERNET_FEATURE);
+
+       if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6) {
+               CONNECTION_LOG(CONNECTION_ERROR, "Not supported");
+               return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
+       }
+
+       if (!(_connection_libnet_check_profile_validity(profile)) ||
+           (address_family != CONNECTION_ADDRESS_FAMILY_IPV4) ||
+           dhcp_server == NULL) {
+               CONNECTION_LOG(CONNECTION_ERROR, "Invalid parameter");
+               return CONNECTION_ERROR_INVALID_PARAMETER;
+       }
+
+       net_profile_info_t *profile_info = profile;
+       net_dev_info_t *net_info = __profile_get_net_info(profile_info);
+       if (net_info == NULL)
+               return CONNECTION_ERROR_OPERATION_FAILED;
+
+       CONNECTION_LOG(CONNECTION_INFO, "IP Config %d, DHCP Server Address %s",
+                       net_info->IpConfigType, (net_info->BServerAddr ? "TRUE" : "FALSE"));
+
+       *dhcp_server = __profile_convert_ip_to_string(&net_info->ServerAddr,
+                       address_family);
+
+       if (*dhcp_server == NULL)
+               return CONNECTION_ERROR_OUT_OF_MEMORY;
+
+       return CONNECTION_ERROR_NONE;
+}
+
 EXPORT_API int connection_profile_get_dns_address(connection_profile_h profile, int order,
                connection_address_family_e address_family, char** dns_address)
 {
index 581f28f..588d06c 100755 (executable)
@@ -859,6 +859,7 @@ static void test_print_network_info(connection_profile_h profile, connection_add
        char *ip = NULL;
        char *subnet = NULL;
        char *gateway = NULL;
+       char *dhcp_server = NULL;
        char *dns1 = NULL;
        char *dns2 = NULL;
        char *proxy = NULL;
@@ -893,6 +894,13 @@ static void test_print_network_info(connection_profile_h profile, connection_add
                g_free(gateway);
        }
 
+       if (connection_profile_get_dhcp_server_address(profile, address_family, &dhcp_server) != CONNECTION_ERROR_NONE)
+               printf("Fail to get DHCP Server address!\n");
+       else {
+               printf("DHCP Server : %s\n", dhcp_server);
+               g_free(dhcp_server);
+       }
+
        if (connection_profile_get_subnet_mask(profile, address_family, &subnet) != CONNECTION_ERROR_NONE)
                printf("Fail to get subnet mask!\n");
        else {