Remove duplicated codes 60/280460/3 accepted/tizen_7.0_unified accepted/tizen_7.0_unified_hotfix tizen_7.0 tizen_7.0_hotfix accepted/tizen/7.0/unified/20221110.060223 accepted/tizen/7.0/unified/hotfix/20221116.104833 accepted/tizen/unified/20220908.013429 submit/tizen/20220905.023906 tizen_7.0_m2_release
authorSeonah Moon <seonah1.moon@samsung.com>
Tue, 30 Aug 2022 09:21:31 +0000 (18:21 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Tue, 30 Aug 2022 10:17:38 +0000 (19:17 +0900)
Change-Id: Id772486404f3bfe072fd71b660002b37ccc6bf58

packaging/capi-network-softap.spec
src/softap.c

index cf54ef4fa39453c4acd05669c716646199635d7c..13f3555b67f7e50bf22351d6dab88e9155737032 100644 (file)
@@ -1,6 +1,6 @@
 Name:          capi-network-softap
 Summary:       Softap Framework
-Version:       0.1.0
+Version:       0.1.1
 Release:       1
 Group:         System/Network
 License:       Apache-2.0
index 0d1adcb575a98370a7d0e666ce624db5334c2056..eaeeed344498c7bbbf8388bbc14fcaf02738aaa0 100755 (executable)
@@ -386,6 +386,16 @@ static void __handle_softap_off(GDBusConnection *connection, const gchar *sender
        DBG("-");
 }
 
+static void __invoke_disabled_cb_with_reason(__softap_h *sa, softap_disabled_cause_e code)
+{
+       if (sa == NULL || sa->disabled_cb == NULL) {
+               ERR("sa or sa->disabled_cb is NULL");
+               return;
+       }
+
+       sa->disabled_cb(SOFTAP_ERROR_NONE, code, sa->disabled_user_data);
+}
+
 
 static void __handle_low_battery_mode(GDBusConnection *connection, const gchar *sender_name,
                        const gchar *object_path, const gchar *interface_name, const gchar *signal_name,
@@ -393,28 +403,7 @@ static void __handle_low_battery_mode(GDBusConnection *connection, const gchar *
 {
        DBG("+");
        SOFTAP_LOCK;
-
-       if (user_data == NULL) {
-               ERR("parameter(user_data) is NULL");
-               SOFTAP_UNLOCK;
-               return;
-       }
-
-       __softap_h *sa = (__softap_h *)user_data;
-       softap_disabled_cb dcb = NULL;
-       void *data = NULL;
-       softap_disabled_cause_e code = SOFTAP_DISABLED_BY_LOW_BATTERY;
-
-       dcb = sa->disabled_cb;
-       if (dcb == NULL) {
-               SOFTAP_UNLOCK;
-               return;
-       }
-
-       data = sa->disabled_user_data;
-
-       dcb(SOFTAP_ERROR_NONE, code, data);
-
+       __invoke_disabled_cb_with_reason((__softap_h *)user_data, SOFTAP_DISABLED_BY_LOW_BATTERY);
        SOFTAP_UNLOCK;
        DBG("-");
 }
@@ -425,28 +414,7 @@ static void __handle_flight_mode(GDBusConnection *connection, const gchar *sende
 {
        DBG("+");
        SOFTAP_LOCK;
-
-       if (user_data == NULL) {
-               ERR("parameter(user_data) is NULL");
-               SOFTAP_UNLOCK;
-               return;
-       }
-
-       __softap_h *sa = (__softap_h *)user_data;
-       softap_disabled_cb dcb = NULL;
-       void *data = NULL;
-       softap_disabled_cause_e code = SOFTAP_DISABLED_BY_FLIGHT_MODE;
-
-       dcb = sa->disabled_cb;
-       if (dcb == NULL) {
-               SOFTAP_UNLOCK;
-               return;
-       }
-
-       data = sa->disabled_user_data;
-
-       dcb(SOFTAP_ERROR_NONE, code, data);
-
+       __invoke_disabled_cb_with_reason((__softap_h *)user_data, SOFTAP_DISABLED_BY_FLIGHT_MODE);
        SOFTAP_UNLOCK;
        DBG("-");
 }
@@ -459,26 +427,16 @@ static void __handle_security_type_changed(GDBusConnection *connection, const gc
        DBG("+");
        SOFTAP_LOCK;
 
-       if (user_data == NULL) {
-               ERR("parameter(user_data) is NULL");
-               SOFTAP_UNLOCK;
-               return;
-       }
-
        __softap_h *sa = (__softap_h *)user_data;
-       softap_security_type_changed_cb scb = NULL;
-       void *data = NULL;
-       int security_type;
-
-       scb = sa->security_type_changed_cb;
-       if (scb == NULL) {
+       if (sa == NULL || sa->security_type_changed_cb == NULL) {
+               ERR("sa or callback is NULL");
                SOFTAP_UNLOCK;
                return;
        }
 
+       int security_type = 0;
        g_variant_get(parameters, "(i)", &security_type);
-       data = sa->security_type_user_data;
-       scb((softap_security_type_e)security_type, data);
+       sa->security_type_changed_cb((softap_security_type_e)security_type, sa->security_type_user_data);
 
        SOFTAP_UNLOCK;
        return;
@@ -491,26 +449,16 @@ static void __handle_ssid_visibility_changed(GDBusConnection *connection, const
        DBG("+");
        SOFTAP_LOCK;
 
-       if (user_data == NULL) {
-               ERR("parameter(user_data) is NULL");
+       __softap_h *sa = (__softap_h *)user_data;
+       if (sa == NULL || sa->ssid_visibility_changed_cb == NULL) {
+               ERR("sa or callback is NULL");
                SOFTAP_UNLOCK;
                return;
        }
 
-       __softap_h *sa = (__softap_h *)user_data;
-       softap_ssid_visibility_changed_cb scb = NULL;
-       void *data = NULL;
        int visible = 0;
-
-       scb = sa->ssid_visibility_changed_cb;
-       if (scb == NULL) {
-               SOFTAP_UNLOCK;
-               DBG("-");
-               return;
-       }
        g_variant_get(parameters, "(i)", &visible);
-       data = sa->ssid_visibility_user_data;
-       scb(visible, data);
+       sa->ssid_visibility_changed_cb(visible, sa->ssid_visibility_user_data);
 
        SOFTAP_UNLOCK;
        DBG("-");
@@ -523,25 +471,14 @@ static void __handle_passphrase_changed(GDBusConnection *connection, const gchar
        DBG("+");
        SOFTAP_LOCK;
 
-       if (user_data == NULL) {
-               ERR("parameter(user_data) is NULL");
-               SOFTAP_UNLOCK;
-               return;
-       }
-
        __softap_h *sa = (__softap_h *)user_data;
-       softap_passphrase_changed_cb pcb = NULL;
-       void *data = NULL;
-
-       pcb = sa->passphrase_changed_cb;
-       if (pcb == NULL) {
+       if (sa == NULL || sa->passphrase_changed_cb == NULL) {
+               ERR("sa or callback is NULL");
                SOFTAP_UNLOCK;
                return;
        }
 
-       data = sa->passphrase_user_data;
-
-       pcb(data);
+       sa->passphrase_changed_cb(sa->passphrase_user_data);
 
        SOFTAP_UNLOCK;
        DBG("-");
@@ -815,6 +752,47 @@ static bool __get_ssid_from_vconf(const char *path, char *ssid, unsigned int siz
        return true;
 }
 
+int __handle_dbus_error(GError *error)
+{
+       if (!error)
+               return SOFTAP_ERROR_NONE;
+
+       ERR("g_dbus_proxy_call_sync failed because  %s\n", error->message);
+       return (error->code == G_DBUS_ERROR_ACCESS_DENIED) ?
+               SOFTAP_ERROR_PERMISSION_DENIED : SOFTAP_ERROR_OPERATION_FAILED;
+}
+
+int _softap_enable_dhcp(softap_h softap, char *rangestart, char *rangestop)
+{
+       GVariant *parameters;
+       GError *error = NULL;
+       guint result;
+
+       __softap_h *sa = (__softap_h *)softap;
+       GDBusProxy *proxy = sa->client_bus_proxy;
+
+       if (rangestart == NULL && rangestop == NULL)
+               parameters = g_dbus_proxy_call_sync(proxy, "enable_dhcp",
+                       NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+       else
+               parameters = g_dbus_proxy_call_sync(proxy, "enable_dhcp_with_range",
+                               g_variant_new("(ss)", rangestart, rangestop),
+                               G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+
+       result = __handle_dbus_error(error);
+       if (result != SOFTAP_ERROR_NONE) {
+               g_error_free(error);
+               sa->dhcp_enabled = FALSE;
+               return result;
+       }
+
+       g_variant_get(parameters, "(u)", &result);
+       g_variant_unref(parameters);
+
+       sa->dhcp_enabled = TRUE;
+       return SOFTAP_ERROR_NONE;
+}
+
 API int softap_create(softap_h *softap)
 {
        DBG("+");
@@ -1281,16 +1259,12 @@ API int softap_foreach_connected_clients(softap_h softap, softap_connected_clien
                        NULL, G_DBUS_CALL_FLAGS_NONE,
                        -1, sa->cancellable, &error);
 
-       if (error) {
-               ERR("g_dbus_proxy_call_sync is failed and error is %s\n", error->message);
-               if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
-                       ret = SOFTAP_ERROR_PERMISSION_DENIED;
-               else
-                       ret = SOFTAP_ERROR_OPERATION_FAILED;
-
+       ret = __handle_dbus_error(error);
+       if (ret != SOFTAP_ERROR_NONE) {
                g_error_free(error);
                return ret;
        }
+
        g_variant_get(result, "(a(a{sv}))", &outer_iter);
 
        while (g_variant_iter_loop(outer_iter, "(@a{sv})", &station)) {
@@ -1750,14 +1724,8 @@ API int softap_get_passphrase(softap_h softap, char **passphrase)
        parameters = g_dbus_proxy_call_sync(proxy, "get_passphrase",
                        NULL, 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)
-                       ret = SOFTAP_ERROR_PERMISSION_DENIED;
-               else
-                       ret = SOFTAP_ERROR_OPERATION_FAILED;
-
+       ret = __handle_dbus_error(error);
+       if (ret != SOFTAP_ERROR_NONE) {
                g_error_free(error);
                return ret;
        }
@@ -1790,14 +1758,8 @@ API int softap_push_wps_button(softap_h softap)
        parameters = g_dbus_proxy_call_sync(proxy, "push_wps_button",
                        NULL, 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)
-                       ret = SOFTAP_ERROR_PERMISSION_DENIED;
-               else
-                       ret = SOFTAP_ERROR_OPERATION_FAILED;
-
+       ret = __handle_dbus_error(error);
+       if (ret != SOFTAP_ERROR_NONE) {
                g_error_free(error);
                return ret;
        }
@@ -1833,14 +1795,8 @@ API int softap_set_wps_pin(softap_h softap, const char *wps_pin)
        parameters = g_dbus_proxy_call_sync(proxy, "set_wps_pin",
                        g_variant_new("(s)", wps_pin), 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)
-                       ret = SOFTAP_ERROR_PERMISSION_DENIED;
-               else
-                       ret = SOFTAP_ERROR_OPERATION_FAILED;
-
+       ret = __handle_dbus_error(error);
+       if (ret != SOFTAP_ERROR_NONE) {
                g_error_free(error);
                return ret;
        }
@@ -1981,35 +1937,7 @@ API int softap_enable_dhcp(softap_h softap)
        CHECK_FEATURE_SUPPORTED(SUPPORTED_FEATURE_SOFTAP);
        _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER,
                        "parameter(softap) is NULL\n");
-
-       __softap_h *sa = (__softap_h *)softap;
-       GError *error = NULL;
-       GVariant *parameters = NULL;
-       GDBusProxy *proxy = sa->client_bus_proxy;
-       guint result;
-
-       parameters = g_dbus_proxy_call_sync(proxy, "enable_dhcp",
-                       NULL, 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 = SOFTAP_ERROR_PERMISSION_DENIED;
-               else
-                       result = SOFTAP_ERROR_OPERATION_FAILED;
-
-               g_error_free(error);
-               sa->dhcp_enabled = FALSE;
-
-               return result;
-       }
-
-       g_variant_get(parameters, "(u)", &result);
-       g_variant_unref(parameters);
-
-       sa->dhcp_enabled = TRUE;
-
-       return SOFTAP_ERROR_NONE;
+       return _softap_enable_dhcp(softap, NULL, NULL);
 }
 
 API int softap_disable_dhcp(softap_h softap)
@@ -2022,23 +1950,18 @@ API int softap_disable_dhcp(softap_h softap)
        GError *error = NULL;
        GVariant *parameters = NULL;
        GDBusProxy *proxy = sa->client_bus_proxy;
-       guint result;
+       guint ret;
 
        parameters = g_dbus_proxy_call_sync(proxy, "disable_dhcp",
                        NULL, 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 = SOFTAP_ERROR_PERMISSION_DENIED;
-               else
-                       result = SOFTAP_ERROR_OPERATION_FAILED;
-
+       ret = __handle_dbus_error(error);
+       if (ret != SOFTAP_ERROR_NONE) {
                g_error_free(error);
-               return result;
+               return ret;
        }
 
-       g_variant_get(parameters, "(u)", &result);
+       g_variant_get(parameters, "(u)", &ret);
        g_variant_unref(parameters);
 
        sa->dhcp_enabled = FALSE;
@@ -2064,14 +1987,9 @@ API int softap_is_dhcp_enabled(softap_h softap, bool *dhcp_enabled)
        parameters = g_dbus_proxy_call_sync(proxy, "get_dhcp_state",
                        NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
 
-       if (error) {
-               ERR("g_dbus_proxy_call_sync failed becuase %s\n", error->message);
-
-               if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
-                       ret = SOFTAP_ERROR_PERMISSION_DENIED;
-               else
-                       ret = SOFTAP_ERROR_OPERATION_FAILED;
-       }
+       ret = __handle_dbus_error(error);
+       if (ret != SOFTAP_ERROR_NONE)
+               g_error_free(error);
 
        if (parameters != NULL) {
                g_variant_get(parameters, "(b)", &enabled);
@@ -2095,34 +2013,5 @@ API int softap_enable_dhcp_with_range(softap_h softap, char *rangestart, char *r
        _retvm_if(rangestop == NULL, SOFTAP_ERROR_INVALID_PARAMETER,
                        "parameter(rangestop) is NULL\n");
 
-       GVariant *parameters;
-       GError *error = NULL;
-       guint result;
-
-       __softap_h *sa = (__softap_h *)softap;
-       GDBusProxy *proxy = sa->client_bus_proxy;
-
-       parameters = g_dbus_proxy_call_sync(proxy, "enable_dhcp_with_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 = SOFTAP_ERROR_PERMISSION_DENIED;
-               else
-                       result = SOFTAP_ERROR_OPERATION_FAILED;
-
-               g_error_free(error);
-               sa->dhcp_enabled = FALSE;
-
-               return result;
-       }
-
-       g_variant_get(parameters, "(u)", &result);
-       g_variant_unref(parameters);
-
-       sa->dhcp_enabled = TRUE;
-
-       return SOFTAP_ERROR_NONE;
+       return _softap_enable_dhcp(softap, rangestart, rangestop);
 }