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;
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)) {
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;
}
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("===============================================================");