return __remove_mac_from_file(BLOCKED_LIST, mac);
}
+API int tethering_wifi_enable_dhcp(tethering_h tethering, bool enable)
+{
+ CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE, TETHERING_WIFI_FEATURE);
+
+ _retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
+ "parameter(tethering) is NULL\n");
+
+ GVariant *parameters;
+ GError *error = NULL;
+ guint result;
+
+ __tethering_h *th = (__tethering_h *)tethering;
+
+ GDBusProxy *proxy = th->client_bus_proxy;
+
+ parameters = g_dbus_proxy_call_sync (proxy, "enable_dhcp",
+ g_variant_new("(b)", enable),
+ G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+
+ if (error) {
+ ERR("g_dbus_proxy_call_sync failed because %s\n", error->message);
+ if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ result = TETHERING_ERROR_PERMISSION_DENIED;
+ else
+ result = TETHERING_ERROR_OPERATION_FAILED;
+
+ g_error_free(error);
+ th->dhcp_enabled = false;
+
+ return result;
+ }
+
+ g_variant_get (parameters, "(u)", &result);
+ g_variant_unref(parameters);
+
+ if (enable) {
+ th->dhcp_enabled = true;
+ } else {
+ th->dhcp_enabled = false;
+ }
+
+ return TETHERING_ERROR_NONE;
+}
+
+API int tethering_wifi_set_dhcp_range(tethering_h tethering, char *rangestart, char *rangestop)
+{
+ CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE, TETHERING_WIFI_FEATURE);
+
+ _retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
+ "parameter(tethering) is NULL\n");
+ _retvm_if(rangestart == NULL, TETHERING_ERROR_INVALID_PARAMETER,
+ "parameter(rangestart) is NULL\n");
+ _retvm_if(rangestop == NULL, TETHERING_ERROR_INVALID_PARAMETER,
+ "parameter(rangestop) is NULL\n");
+
+ GVariant *parameters;
+ GError *error = NULL;
+ guint result;
+
+ __tethering_h *th = (__tethering_h *)tethering;
+
+ GDBusProxy *proxy = th->client_bus_proxy;
+
+ parameters = g_dbus_proxy_call_sync (proxy, "dhcp_range",
+ g_variant_new("(ss)", rangestart, rangestop),
+ G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+ if (error) {
+ ERR("g_dbus_proxy_call_sync failed because %s\n", error->message);
+
+ if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ result = TETHERING_ERROR_PERMISSION_DENIED;
+ else
+ result = TETHERING_ERROR_OPERATION_FAILED;
+
+ g_error_free(error);
+ th->dhcp_enabled = false;
+
+ return result;
+ }
+
+ g_variant_get (parameters, "(u)", &result);
+ g_variant_unref(parameters);
+
+ th->dhcp_enabled = true;
+
+ return TETHERING_ERROR_NONE;
+}
+
+API int tethering_wifi_is_dhcp_enabled(tethering_h tethering, bool *dhcp_enabled)
+{
+ CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE, TETHERING_WIFI_FEATURE);
+ _retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
+ "parameter(tethering) is NULL\n");
+ _retvm_if(dhcp_enabled == NULL, TETHERING_ERROR_INVALID_PARAMETER,
+ "parameter(dhcp_enabled) is NULL\n");
+
+ __tethering_h *th = (__tethering_h *)tethering;
+ *dhcp_enabled = th->dhcp_enabled;
+
+ return TETHERING_ERROR_NONE;
+}
+
/**
* @internal
* @brief Sets the security type of Wi-Fi AP.
return 1;
}
+static int test_tethering_wifi_enable_dhcp(void)
+{
+ int ret;
+ int enable;
+
+ printf("Input (0-Disable, 1-Enable): ");
+ ret = scanf("%d", &enable);
+
+ ret = tethering_wifi_enable_dhcp(th, enable);
+ if (__is_err(ret) == true) {
+ printf("Fail to enable dhcp server!!\n");
+ return -1;
+ }
+
+ return 1;
+}
+
+static int test_tethering_wifi_set_dhcp_range(void)
+{
+ int ret;
+ char rangestart[16], rangestop[16];
+
+ printf("Input range (ex: 192.168.0.50 192.168.0.150): ");
+
+ ret = scanf("%s %s", rangestart, rangestop);
+
+ ret = tethering_wifi_set_dhcp_range(th, rangestart, rangestop);
+ if (__is_err(ret) == true) {
+ printf("Fail to set dhcp range and enable dhcp server!!\n");
+ return -1;
+ }
+
+ return 1;
+}
+
+static int test_tethering_wifi_is_dhcp_enabled(void)
+{
+ int ret;
+ bool enabled;
+
+ ret = tethering_wifi_is_dhcp_enabled(th, &enabled);
+
+ if (__is_err(ret) == true) {
+ printf("Fail to get dhcp server status!!\n");
+ return -1;
+ }
+ else {
+ printf("DHCP server is %s\n", enabled? "enabled": "disabled");
+ }
+
+ return 1;
+}
+
static int test_tethering_wifi_set_mac_filtering(void)
{
int ret;
printf("l - Reload Wi-Fi AP\n");
printf("m - Set Wi-Fi channel\n");
printf("n - Set Wi-Fi hw_mode\n");
+ printf("o - Enable dhcp server\n");
+ printf("p - Enable dhcp server with range\n");
+ printf("q - Is dhcp server enabled?\n");
printf("0 - Exit \n");
printf("ENTER - Show options menu.......\n");
}
case 'n':
rv = test_tethering_wifi_set_mode();
break;
+ case 'o':
+ rv = test_tethering_wifi_enable_dhcp();
+ break;
+ case 'p':
+ rv = test_tethering_wifi_set_dhcp_range();
+ break;
+ case 'q':
+ rv = test_tethering_wifi_is_dhcp_enabled();
+ break;
}
if (rv == 1)