Add dbus method to remove all AP configurations 00/286500/2 accepted/tizen/7.0/unified/20230118.093743
authorJaehyun Kim <jeik01.kim@samsung.com>
Mon, 9 Jan 2023 05:15:50 +0000 (14:15 +0900)
committerJaehyun Kim <jeik01.kim@samsung.com>
Mon, 9 Jan 2023 05:25:48 +0000 (14:25 +0900)
Change-Id: Ia110f13beca17b3f16e4ec8556ec78d6e1ada329
Signed-off-by: Jaehyun Kim <jeik01.kim@samsung.com>
include/wifi-config.h
interfaces/netconfig-iface-wifi.xml
resources/etc/dbus-1/system.d/net-config-robot.conf
resources/etc/dbus-1/system.d/net-config.conf
src/wifi-config.c
src/wifi.c

index 776024453997aa30fdac4611086435304eb9d890..4f674f6855b827b40c00398f15ebe9ea87a8d9da 100755 (executable)
@@ -99,6 +99,7 @@ gboolean handle_save_eap_configuration(Wifi *wifi, GDBusMethodInvocation *contex
                        const gchar *ifname, const gchar *config_id, GVariant *configuration);
 gboolean handle_remove_configuration(Wifi *wifi, GDBusMethodInvocation *context,
                        const gchar *ifname, const gchar *config_id);
+gboolean handle_reset_wifi_config(Wifi *wifi, GDBusMethodInvocation *context);
 gboolean handle_set_config_field(Wifi *wifi, GDBusMethodInvocation *context,
                        const gchar *ifname, const gchar *config_id, const gchar *key, const gchar *value);
 gboolean handle_get_config_passphrase(Wifi *wifi, GDBusMethodInvocation *context,
index 40956903f7c10ca024554c9ec5f83f596821ce6b..ff272d11a1282238e48a1b1372ab4b7589e9616c 100755 (executable)
                <method name="DeleteEapConfig">
                        <arg type="s" name="Profile" direction="in"/>
                </method>
+               <method name="ResetWifiConfig">
+               </method>
                <method name="IpConflictSetEnable">
                        <arg type="s" name="ifname" direction="in"/>
                        <arg type="b" name="detect" direction="in"/>
index 1f3150e5dcfbee2999e03a76f51629552995543e..da297ca48ea8aa9e098501ac220e479d84b87d02 100755 (executable)
@@ -89,6 +89,7 @@
                <allow send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="LoadEapConfiguration" />
                <allow send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="SaveEapConfiguration" />
                <allow send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="RemoveConfiguration" />
+               <allow send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="ResetWifiConfig" />
                <allow send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="SetConfigField" />
                <allow send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="PowerOnCompleted" />
                <allow send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="PowerOffCompleted" />
index 5730ed9c87baecdf7c429b41f8894f3169c00886..bb7b99c89f699d4f1f720892fc57781b058067d0 100755 (executable)
@@ -91,6 +91,7 @@
                <check send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="LoadEapConfiguration" privilege="http://tizen.org/privilege/network.profile" />
                <check send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="SaveEapConfiguration" privilege="http://tizen.org/privilege/network.profile" />
                <check send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="RemoveConfiguration" privilege="http://tizen.org/privilege/network.profile" />
+               <check send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="ResetWifiConfig" privilege="http://tizen.org/privilege/network.profile" />
                <check send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="SetConfigField" privilege="http://tizen.org/privilege/network.profile" />
                <check send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="PowerOnCompleted" privilege="http://tizen.org/privilege/network.get" />
                <check send_destination="net.netconfig" send_interface="net.netconfig.wifi" send_member="PowerOffCompleted" privilege="http://tizen.org/privilege/network.get" />
index 8600990a49a6913e4549de9304c26b702893a6e0..737a177759f50e7ded73c661659f78438c152a2e 100755 (executable)
@@ -1844,6 +1844,52 @@ gboolean handle_remove_configuration(Wifi *wifi, GDBusMethodInvocation *context,
        return TRUE;
 }
 
+gboolean handle_reset_wifi_config(Wifi *wifi, GDBusMethodInvocation *context)
+{
+       DIR *dir_ptr = NULL;
+       struct dirent *file = NULL;
+       struct stat buf;
+       char dir_name[512] = { 0, };
+       char file_name[1024] = { 0, };
+
+       g_return_val_if_fail(wifi != NULL, TRUE);
+
+       DBG("Try to remove connman Wi-Fi config files...");
+
+       if ((dir_ptr = opendir(CONNMAN_STORAGE)) != NULL) {
+               while ((file = readdir(dir_ptr)) != NULL) {
+                       if (strncmp(file->d_name, ".", 1) == 0 || strncmp(file->d_name, "..", 2) == 0 ||
+                                       strncmp(file->d_name, WIFI_CONFIG_PREFIX, strlen(WIFI_CONFIG_PREFIX)) != 0) {
+                               continue;
+                       }
+
+                       snprintf(dir_name, 512, CONNMAN_STORAGE"/%s", file->d_name);
+
+                       if (lstat(dir_name, &buf) == -1)
+                               continue;
+
+                       DBG("Remove wifi config: %s", file->d_name);
+
+                       if (S_ISDIR(buf.st_mode)) {
+                               memset(file_name, 0, 1024);
+                               snprintf(file_name, 1024, "%s/data", dir_name);
+                               unlink(file_name);
+                               memset(file_name, 0, 1024);
+                               snprintf(file_name, 1024, "%s/settings", dir_name);
+                               unlink(file_name);
+                       }
+                       rmdir(dir_name);
+               }
+
+               closedir(dir_ptr);
+               sync();
+       }
+
+       wifi_complete_reset_wifi_config(wifi, context);
+
+       return TRUE;
+}
+
 /* config field key / value */
 /*
  * [wifi_macaddress_config_id]
index 948642204d19ca882ce4cfa1cacc96a462f7e749..c58a44843348717f6ab2c80f827d12b099516f6d 100755 (executable)
@@ -278,6 +278,8 @@ void wifi_object_create_and_init(void)
                        G_CALLBACK(handle_save_configuration), NULL);
        g_signal_connect(wifi_object, "handle-remove-configuration",
                        G_CALLBACK(handle_remove_configuration), NULL);
+       g_signal_connect(wifi_object, "handle-reset-wifi-config",
+                       G_CALLBACK(handle_reset_wifi_config), NULL);
        g_signal_connect(wifi_object, "handle-get-config-ids",
                        G_CALLBACK(handle_get_config_ids), NULL);
        g_signal_connect(wifi_object, "handle-load-configuration",