- if (agent.ssid)
- g_byte_array_free(agent.ssid, TRUE);
- g_free(agent.name);
- g_free(agent.identity);
- g_free(agent.passphrase);
- g_free(agent.wps_pin);
-
- agent.ssid = NULL;
- agent.name = NULL;
- agent.identity = NULL;
- agent.passphrase = NULL;
- agent.wps_pin = NULL;
- agent.wps_pbc = FALSE;
+ if (!agent)
+ return;
+
+ g_free(agent->interface_name);
+ if (agent->ssid)
+ g_byte_array_free(agent->ssid, TRUE);
+ g_free(agent->name);
+ g_free(agent->identity);
+ g_free(agent->passphrase);
+ g_free(agent->wps_pin);
+#if defined TIZEN_CAPTIVE_PORTAL
+ g_free(agent->username);
+ g_free(agent->password);
+#endif
+
+ agent->interface_name = NULL;
+ agent->ssid = NULL;
+ agent->name = NULL;
+ agent->identity = NULL;
+ agent->passphrase = NULL;
+ agent->wps_pin = NULL;
+#if defined TIZEN_CAPTIVE_PORTAL
+ agent->username = NULL;
+ agent->password = NULL;
+#endif
+ agent->wps_pbc = FALSE;
+}
+
+static void __agent_free_data(gpointer data)
+{
+ netconfig_wifi_agent_s *agent = data;
+
+ __agent_clear_fields(agent);
+ g_free(agent);
+}
+
+static netconfig_wifi_agent_s *__agent_get_data(const char *interface_name)
+{
+ GSList *list = NULL;
+
+ for (list = g_agent_list; list; list = list->next) {
+ netconfig_wifi_agent_s *wifi_agent = list->data;
+ if (g_strcmp0(wifi_agent->interface_name, interface_name) == 0)
+ return wifi_agent;
+ }
+
+ return NULL;