CONNECTION_PROXY_TYPE_MANUAL = 2, /**< Manual configuration */
} connection_proxy_type_e;
+/**
+ * @brief Enumeration for DNS configuration type.
+ * @since_tizen 4.0
+ */
+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_e;
/**
* @brief Enumeration for network connection type.
*/
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
+ */
+int connection_profile_get_ipv6_state(connection_profile_h profile, connection_profile_state_e *state);
+
+/**
+ * @brief Sets the DNS config type.
+ * @since_tizen 4.0
+ * @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.
+ * @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_dns_config_type(connection_profile_h profile,
+ connection_address_family_e address_family, connection_dns_config_type_e type);
+
+/**
+ * @brief Gets the DNS config type.
+ * @since_tizen 4.0
+ * @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.
+ * @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_dns_config_type(connection_profile_h profile,
+ connection_address_family_e address_family, connection_dns_config_type_e *type);
+
+/**
+ * @brief Gets the network prefix length.
+ * @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.
+ * 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.
+ * @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_prefix_length(connection_profile_h profile,
+ connection_address_family_e address_family, int *prefix_len);
+
+/**
+ * @brief Sets the network prefix length.
+ * @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.
+ * 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.
+ * @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
+ * @see connection_update_profile()
+ */
+int connection_profile_set_prefix_length(connection_profile_h profile,
+ connection_address_family_e address_family, int prefix_len);
/**
* @}
/**
- * @brief Checks wheter the connection is in roaming state.
+ * @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,
CONNECTION_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED /**< Not Supported */
} connection_error_e;
-
/**
* @}
*/
*/
typedef void(*connection_set_default_cb)(connection_error_e result, void* user_data);
+/* @brief Called with an IPv6 address.
+ * @since_tizen 4.0
+ * @remarks If @a ipv6_address is needed outside the callback, a copy should be made. \n
+ * @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
+ * @pre connection_foreach_ipv6_addresses() will invoke this callback.
+ * @see connection_foreach_ipv6_addresses()
+ */
+typedef bool(*connection_ipv6_address_cb)(char *ipv6_address, void *user_data);
/**
* @brief Gets the type of the current profile for data connection.
* @privilege %http://tizen.org/privilege/network.get
* @remarks You must release @a profile_iterator using connection_destroy().
* @param[in] connection The connection handle
- * @param[in] type The type of the connetion iterator
+ * @param[in] type The type of the connection iterator
* @param[out] profile_iterator The iterator of profile
* @return @c 0 on success,
* otherwise a negative error value
* @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_PERMISSION_DENIED Permission Denieda
+ * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission Denied
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not Supported
*/
int connection_get_default_cellular_service_profile(connection_h connection, connection_cellular_service_type_e type, connection_profile_h* profile);
*/
int connection_remove_route_ipv6(connection_h connection, const char *interface_name, const char *host_address, const char * gateway);
+/*
+ * @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
+ * @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_foreach_ipv6_address(connection_h connection, connection_type_e connection_type,
+ connection_ipv6_address_cb callback, void *user_data);
/**
* @}
*/
int connection_reset_statistics(connection_h connection, connection_type_e connection_type, connection_statistics_type_e statistics_type);
-
/**
* @}
*/