*/
int softap_get_network_interface_name(softap_h softap, char **interface_name);
+/**
+ * @brief Sets the local IP address.
+ * @since_tizen 4.0
+ * @remarks This change is applied next time softap is enabled.
+ * You can use softap_enable() or softap_reload_settings() to enable softap.
+ * @param[in] softap The softap handle
+ * @param[in] address_family The address family of IP address (currently, #SOFTAP_ADDRESS_FAMILY_IPV4 is only supported)
+ * @param[out] ip_address The local IP address
+ * @return 0 on success, otherwise negative error value
+ * @retval #SOFTAP_ERROR_NONE Successful
+ * @retval #SOFTAP_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOFTAP_ERROR_NOT_SUPPORTED API is not supported
+ */
+int softap_set_ip_address(softap_h softap, softap_address_family_e address_family, const char *ip_address);
+
/**
* @brief Gets the local IP address.
* @since_tizen 3.0
#define SOFTAP_KEY_MAX_LEN 64 /**< Maximum length of wifi key */
#define SOFTAP_VENDOR_MAX_LEN 1024 /**< Maximum length of vendor element */
#define SOFTAP_HASH_KEY_MAX_LEN 64
-
#define SOFTAP_MODE_MAX_LEN 10 /**< Maximum length of mode */
+#define SOFTAP_IPV4_ADDRESS_MAX_LEN 15 /**< Maximum length of IP address */
+#define SOFTAP_IPV4_ADDRESS_MIN_LEN 7 /**< Minimum length of IP address */
+
#define VCONFKEY_MOBILE_HOTSPOT_SSID "memory/private/mobileap-agent/ssid"
#define MAX_ALIAS_LEN 256
/* Settings */
char *ssid;
char passphrase[SOFTAP_KEY_MAX_LEN + 1];
+ char ip_address[SOFTAP_IPV4_ADDRESS_MAX_LEN + 1];
char vendor[SOFTAP_VENDOR_MAX_LEN + 1];
bool visibility;
bool dhcp_enabled;
Name: capi-network-softap
Summary: Softap Framework
-Version: 0.0.17
+Version: 0.0.18
Release: 1
Group: System/Network
License: Apache-2.0
if (sa->sec_type != SOFTAP_SECURITY_TYPE_NONE)
g_variant_builder_add(builder, "{sv}", "passphrase", g_variant_new_string(sa->passphrase));
+ if (strlen(sa->ip_address))
+ g_variant_builder_add(builder, "{sv}", "ip_address", g_variant_new_string(sa->ip_address));
+
if (strlen(sa->vendor))
g_variant_builder_add(builder, "{sv}", "vendor", g_variant_new_string(sa->vendor));
return SOFTAP_ERROR_NONE;
}
+API int softap_set_ip_address(softap_h softap, softap_address_family_e address_family, const char *ip_address)
+{
+ DBG("+");
+ CHECK_FEATURE_SUPPORTED(WIFI_FEATURE);
+ _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER,
+ "parameter(softap) is NULL\n");
+ _retvm_if(ip_address == NULL, SOFTAP_ERROR_INVALID_PARAMETER,
+ "parameter(ip_address) is NULL\n");
+
+ __softap_h *sa = (__softap_h *)softap;
+ int ip_len = 0;
+
+ if (address_family == SOFTAP_ADDRESS_FAMILY_IPV4) {
+ ip_len = strlen(ip_address);
+ if (ip_len < SOFTAP_IPV4_ADDRESS_MIN_LEN || ip_len > SOFTAP_IPV4_ADDRESS_MAX_LEN) {
+ ERR("parameter(ip_address) is too short or long\n");
+ return SOFTAP_ERROR_INVALID_PARAMETER;
+ }
+ g_strlcpy(sa->ip_address, ip_address, sizeof(sa->ip_address));
+ } else {
+ /* IPv6 is not supported yet. */
+ ERR("Invalid address type!!\n");
+ return SOFTAP_ERROR_NOT_SUPPORTED;
+ }
+
+ DBG("-");
+ return SOFTAP_ERROR_NONE;
+}
+
API int softap_get_ip_address(softap_h softap, softap_address_family_e address_family, char **ip_address)
{
DBG("+");
return 1;
}
+static int test_softap_set_ip_address(void)
+{
+ int ret;
+ char ip[16];
+
+ printf("Input IP address for Softap(IPv4 only): ");
+ ret = scanf("%15s", ip);
+ if (ret < 0) {
+ printf("scanf is failed!!\n");
+ return 0;
+ }
+
+ ret = softap_set_ip_address(sa, SOFTAP_ADDRESS_FAMILY_IPV4, ip);
+ if (ret != SOFTAP_ERROR_NONE)
+ return 0;
+
+ return 1;
+}
+
int main(int argc, char **argv)
{
GMainLoop *mainloop;
printf("h - Enable DHCP Server\n");
printf("i - Disable DHCP Server\n");
printf("j - Set wireless mode\n");
+ printf("k - Set IP address (IPv4 only)\n");
printf("0 - Exit \n");
printf("ENTER - Show options menu.......\n");
}
case 'j':
rv = test_softap_set_mode();
break;
+ case 'k':
+ rv = test_softap_set_ip_address();
+ break;
}
if (rv == 1)