wifi : add head node 01/227201/2
authorKichan Kwon <k_c.kwon@samsung.com>
Tue, 10 Mar 2020 09:20:29 +0000 (18:20 +0900)
committerKichan Kwon <k_c.kwon@samsung.com>
Tue, 10 Mar 2020 11:10:33 +0000 (20:10 +0900)
Change-Id: Ic2bede10aba279a191736413c97cb2013809532d
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
plugin/wifi/src/bm_wifi_plugin.c

index 28a928e..a1b6be2 100755 (executable)
@@ -177,6 +177,7 @@ static int __bm_wifi_get_list(bm_data_h *handle)
        GVariant *message = NULL;
        GVariantIter *iter = NULL;
        GVariantIter *iter_row = NULL;
+       bm_wifi_st *wifi_list_head = NULL;
        bm_wifi_st *wifi_list = NULL;
        bm_wifi_st *curr_wifi_data = NULL;
 
@@ -187,6 +188,12 @@ static int __bm_wifi_get_list(bm_data_h *handle)
        if (message == NULL)
                return BM_PLUGIN_ERROR_NO_DATA;
 
+       wifi_list_head = (bm_wifi_st *)calloc(1, sizeof(bm_wifi_st));
+       if (!wifi_list_head) {
+               _E("calloc failed");
+               return BM_PLUGIN_ERROR_OUT_OF_MEMORY;
+       }
+
        g_variant_get(message, "(aa{sv})", &iter);
 
        while (g_variant_iter_next(iter, "a{sv}", &iter_row)) {
@@ -210,7 +217,8 @@ static int __bm_wifi_get_list(bm_data_h *handle)
        g_variant_iter_free(iter);
        g_variant_unref(message);
 
-       *handle = wifi_list;
+       wifi_list_head->wifi_data_list = g_slist_append(wifi_list_head->wifi_data_list, wifi_list);
+       *handle = wifi_list_head;
 
        return BM_PLUGIN_ERROR_NONE;
 }
@@ -218,6 +226,8 @@ static int __bm_wifi_get_list(bm_data_h *handle)
 static void __bm_wifi_print_list(bm_data_h handle)
 {
        bm_wifi_st *wifi_data = (bm_wifi_st *)handle;
+       if (wifi_data && wifi_data->wifi_data_list)
+               wifi_data = (bm_wifi_st *)wifi_data->wifi_data_list->data;
 
        _D("===============================================================");