Fix typos & Change to use GList on test app
authorJiwan Kim <ji-wan.kim@samsung.com>
Tue, 21 Mar 2017 05:13:30 +0000 (14:13 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Mon, 17 Jul 2017 02:09:10 +0000 (11:09 +0900)
- Use GList instead of GHashTable to prevent invalid list ordering issue

include/mesh.h
src/mesh.c
test/main.c
test/mesh_network.c

index 4fc6668..f1184fd 100644 (file)
@@ -103,7 +103,7 @@ typedef enum {
 typedef enum {
        MESH_MESH_ENABLED_EVENT = 0x00, /**< This event is received after enabling mesh network */
        MESH_SCAN_DONE_EVENT = 0x01, /**< This event comes after scanning operation completed */
-       MESH_JOIN_NETWORK_EVENT = 0x02, /**< This event comes after joiing a mesh network */
+       MESH_JOIN_NETWORK_EVENT = 0x02, /**< This event comes after joining a mesh network */
        MESH_LEFT_NETWORK_EVENT = 0x03, /**< This event comes after left the current mesh network */
        MESH_STATION_JOIN_EVENT = 0x04, /**< This event takes place when new station joined */
        MESH_STATION_LEFT_EVENT = 0x05, /**< This event takes place when existing station left */
@@ -227,7 +227,7 @@ int mesh_network_clone(mesh_network_h* dst, mesh_network_h src);
  * @param[in] bssid The Basic Service Set ID
  * @param[in] channel The operating channel number
  * @param[in] rssi The Received Signal Strength Indicator
- * @param[in] data_rate The maxinum data rate
+ * @param[in] data_rate The maximum data rate
  *
  * @return 0 on success, otherwise a negative error value.
  * @retval #MESH_ERROR_NONE Successful
@@ -248,7 +248,7 @@ int mesh_network_new_with(mesh_network_h* network, const char *meshid,
  *
  * @since_tizen 4.0
  *
- * @param[in] netowrk The target mesh network information handle.
+ * @param[in] network The target mesh network information handle.
  *
  * @return 0 on success, otherwise a negative error value.
  * @retval #MESH_ERROR_NONE Successful
@@ -269,7 +269,7 @@ void mesh_network_destroy(mesh_network_h network);
  *
  * @since_tizen 4.0
  *
- * @param[in] netowrk The mesh network information handle.
+ * @param[in] network The mesh network information handle.
  * @param[out] meshid The mesh network id.
  *
  * @return None
@@ -285,7 +285,7 @@ int mesh_network_get_meshid(mesh_network_h network, char **meshid);
  *
  * @since_tizen 4.0
  *
- * @param[in] netowrk The mesh network information handle.
+ * @param[in] network The mesh network information handle.
  * @param[in] meshid The mesh network id.
  *
  * @return 0 on success, otherwise a negative error value.
@@ -303,7 +303,7 @@ int mesh_network_set_meshid(mesh_network_h network, const char *meshid);
  *
  * @since_tizen 4.0
  *
- * @param[in] netowrk The mesh network information handle.
+ * @param[in] network The mesh network information handle.
  * @param[in] bssid The basic service set id.
  *
  * @return 0 on success, otherwise a negative error value.
@@ -321,7 +321,7 @@ int mesh_network_get_bssid(mesh_network_h network, char **bssid);
  *
  * @since_tizen 4.0
  *
- * @param[in] netowrk The mesh network information handle.
+ * @param[in] network The mesh network information handle.
  * @param[in] bssid The basic service set id.
  *
  * @return 0 on success, otherwise a negative error value.
@@ -339,8 +339,8 @@ int mesh_network_set_bssid(mesh_network_h network, const char *bssid);
  *
  * @since_tizen 4.0
  *
- * @param[in] netowrk The mesh network information handle.
- * @param[out] chanel The opeatring channel number.
+ * @param[in] network The mesh network information handle.
+ * @param[out] channel The operating channel number.
  *
  * @return 0 on success, otherwise a negative error value.
  * @retval #MESH_ERROR_NONE Successful
@@ -357,8 +357,8 @@ int mesh_network_get_channel(mesh_network_h network, int *channel);
  *
  * @since_tizen 4.0
  *
- * @param[in] netowrk The mesh network information handle.
- * @param[in] chanel The opeatring channel number.
+ * @param[in] network The mesh network information handle.
+ * @param[in] channel The operating channel number.
  *
  * @return 0 on success, otherwise a negative error value.
  * @retval #MESH_ERROR_NONE Successful
@@ -393,7 +393,7 @@ int mesh_network_get_rssi(mesh_network_h network, int *rssi);
  *
  * @since_tizen 4.0
  *
- * @param[in] netowrk The mesh network information handle.
+ * @param[in] network The mesh network information handle.
  * @param[in] rssi The received signal strength indicator.
  *
  * @return 0 on success, otherwise a negative error value.
@@ -411,7 +411,7 @@ int mesh_network_set_rssi(mesh_network_h network, int rssi);
  *
  * @since_tizen 4.0
  *
- * @param[in] netowrk The mesh network information handle.
+ * @param[in] network The mesh network information handle.
  * @param[out] data_rate The maximum data rate.
  *
  * @return 0 on success, otherwise a negative error value.
@@ -429,7 +429,7 @@ int mesh_network_get_data_rate(mesh_network_h network, int *data_rate);
  *
  * @since_tizen 4.0
  *
- * @param[in] netowrk The mesh network information handle.
+ * @param[in] network The mesh network information handle.
  * @param[in] data_rate The maximum data rate.
  *
  * @return 0 on success, otherwise a negative error value.
@@ -623,7 +623,7 @@ int mesh_cancel_scan(mesh_h handle);
 typedef void (*mesh_found_mesh_netwrok_cb)(mesh_network_h network, void* user_data);
 
 /**
- * @brief Gets scanned mesh network bss informatoin
+ * @brief Gets scanned mesh network bss information
  * @details This function returns network information scanned through mesh_found_mesh_netwrok_cb.
  *
  * @since_tizen 4.0
@@ -642,7 +642,7 @@ typedef void (*mesh_found_mesh_netwrok_cb)(mesh_network_h network, void* user_da
  * @see mesh_found_mesh_netwrok_cb()
  *
  */
-int mesh_foreach_scanned_mesh_netwrok(mesh_h handle,
+int mesh_foreach_scanned_mesh_network(mesh_h handle,
        mesh_found_mesh_netwrok_cb cb, void *user_data);
 
 /**
@@ -773,7 +773,7 @@ int mesh_unset_gate(mesh_h handle);
  * @param[in] key The pre-shared key
  * @param[in] channel The operating channel number
  * @param[in] visibility The broadcast option (1:Broadcast SSID, 2:Hidden)
- * @param[in] max_stations The maxinum allowable number of stations (default:10)
+ * @param[in] max_stations The maximum allowable number of stations (default:10)
  * @param[in] security Security option (1:WPA1, 2:WPA2)
  *
  *
@@ -868,7 +868,7 @@ int mesh_add_mesh_network(mesh_h handle, mesh_network_h network);
 typedef void (*mesh_saved_mesh_netwrok_cb)(mesh_network_h network, void* user_data);
 
 /**
- * @brief Gets saved mesh network informatoin
+ * @brief Gets saved mesh network information
  * @details This function returns saved network information through mesh_saved_mesh_netwrok_cb.
  *
  * @since_tizen 4.0
@@ -890,8 +890,8 @@ int mesh_foreach_saved_mesh_network(mesh_h handle,
        mesh_saved_mesh_netwrok_cb cb, void *user_data);
 
 /**
- * @brief Seletcs existing mesh network configuration
- * @details This function seletcs existing network configuration to connect.
+ * @brief Selects existing mesh network configuration
+ * @details This function selects existing network configuration to connect.
  *
  * @since_tizen 4.0
  *
index 016d4ac..939e570 100644 (file)
@@ -395,7 +395,7 @@ EXPORT_API int mesh_specific_scan(mesh_h handle, const char* ssid, int channel)
        return MESH_ERROR_NONE;
 }
 
-EXPORT_API int mesh_foreach_scanned_mesh_netwrok(mesh_h handle,
+EXPORT_API int mesh_foreach_scanned_mesh_network(mesh_h handle,
        mesh_found_mesh_netwrok_cb cb, void *user_data)
 {
        int rv = 0;
index c9090a7..1a841df 100644 (file)
@@ -35,9 +35,9 @@ extern struct menu_data menu_mesh_device[];
 extern struct menu_data menu_mesh_network[];
 
 /* Scanned Mesh Network */
-extern GHashTable *g_hash_scan_net_list;
+extern GList *g_scanned_network_list;
 /* Mesh Network Configuration */
-extern GHashTable *g_hash_saved_net_list;
+extern GList *g_saved_network_list;
 
 const char* mesh_error_to_string(mesh_error_e err)
 {
@@ -161,10 +161,10 @@ int main(int arg, char **argv)
        g_main_loop_run(mainloop);
 
 OUT:
-       if (g_hash_scan_net_list)
-               g_hash_table_remove_all(g_hash_scan_net_list);
-       if (g_hash_saved_net_list)
-               g_hash_table_remove_all(g_hash_saved_net_list);
+       if (g_scanned_network_list)
+               g_list_free(g_scanned_network_list);
+       if (g_saved_network_list)
+               g_list_free(g_saved_network_list);
 
        if (mesh) {
                mesh_disable(mesh);
index 2916542..0e321d8 100644 (file)
@@ -47,13 +47,13 @@ static char network_idx[MENU_DATA_SIZE + 1] = "1";
 
 /* Scanned Mesh Network */
 static int g_scan_net_idx = 0;
-GHashTable *g_hash_scan_net_list = NULL;
+GList *g_scanned_network_list = NULL;
 
 /* Mesh Network Configuration */
 static int g_saved_net_idx = 0;
-GHashTable *g_hash_saved_net_list = NULL;
+GList *g_saved_network_list = NULL;
 
-void found_mesh_netwrok_cb(mesh_network_h network, void* user_data)
+void found_mesh_network_cb(mesh_network_h network, void* user_data)
 {
        int ret;
        mesh_network_h net = NULL;
@@ -63,22 +63,21 @@ void found_mesh_netwrok_cb(mesh_network_h network, void* user_data)
 
        ret = mesh_network_clone(&net, network);
        if (0 != ret) {
-               msg("Failed to clone scaned network: [%s(0x%X)]", mesh_error_to_string(ret), ret);
+               msg("Failed to clone scanned network: [%s(0x%X)]", mesh_error_to_string(ret), ret);
                return;
        }
 
-       if (g_hash_table_insert(g_hash_scan_net_list, GINT_TO_POINTER(g_scan_net_idx), net)) {
-               mesh_network_get_meshid(net, &meshid);
-               mesh_network_get_bssid(net, &bssid);
-               mesh_network_get_channel(net, &channel);
-               msgb("[%d] meshid=%s bssid=%s channel=%d", g_scan_net_idx, meshid, bssid, channel);
+       g_scanned_network_list = g_list_append(g_scanned_network_list, net);
 
-               g_scan_net_idx++;
-       }
+       mesh_network_get_meshid(net, &meshid);
+       mesh_network_get_bssid(net, &bssid);
+       mesh_network_get_channel(net, &channel);
+       msgb("[%d] mesh id=%s bssid=%s channel=%d", g_scan_net_idx, meshid, bssid, channel);
 
+       g_scan_net_idx++;
 }
 
-void saved_mesh_netwrok_cb(mesh_network_h network, void* user_data)
+void saved_mesh_network_cb(mesh_network_h network, void* user_data)
 {
        mesh_network_h net = NULL;
        int ret = mesh_network_clone(&net, network);
@@ -90,34 +89,23 @@ void saved_mesh_netwrok_cb(mesh_network_h network, void* user_data)
                msg("Failed to clone configured network: [%s(0x%X)]", mesh_error_to_string(ret), ret);
                return;
        }
-       if (g_hash_table_insert(g_hash_saved_net_list, GINT_TO_POINTER(g_saved_net_idx), net)) {
-               mesh_network_get_meshid(net, &meshid);
-               mesh_network_get_channel(net, &channel);
-               msg("[%d] meshid=%s channel=%d", g_saved_net_idx, meshid, channel);
 
-               g_saved_net_idx++;
-       }
+       g_saved_network_list = g_list_append(g_saved_network_list, net);
+       mesh_network_get_meshid(net, &meshid);
+       mesh_network_get_channel(net, &channel);
+       msg("[%d] mesh id=%s channel=%d", g_saved_net_idx, meshid, channel);
+
+       g_saved_net_idx++;
 }
 
 static void found_station_cb(mesh_station_info_h station, void* user_data)
 {
-       msg("Station Inforation Received: %p", station);
+       msg("Station Information Received: %p", station);
 }
 
 static void found_mpath_cb(mesh_mpath_info_h mpath, void* user_data)
 {
-       msg("Station Inforation Received: %p", mpath);
-}
-
-static gboolean _mesh_lookup_by_id(gpointer key, gpointer value, gpointer user_data)
-{
-       int k = (int)key;
-       int id = (int)user_data;
-
-       if (k == id)
-               return TRUE;
-
-       return FALSE;
+       msg("Station Information Received: %p", mpath);
 }
 
 static int run_show_saved_network(MManager *mm, struct menu_data *menu)
@@ -126,27 +114,22 @@ static int run_show_saved_network(MManager *mm, struct menu_data *menu)
        char *_meshid = NULL;
        int _channel = 1;
 
-       GList *values = NULL;
-       GList *iter_list = NULL;
+       GList *iter = NULL;
 
-       if (NULL == g_hash_saved_net_list) {
+       if (NULL == g_saved_network_list) {
                return RET_FAILURE;
        }
 
-       msg("Saved Mesh Network Configuratios : ");
-       values = g_hash_table_get_values(g_hash_saved_net_list);
-       iter_list = values;
-
-       while (iter_list != NULL) {
-               mesh_network_h _net = iter_list->data;
+       msg("Saved Mesh Network Configurations : ");
+       iter = g_saved_network_list;
+       while (iter != NULL) {
+               mesh_network_h _net = iter->data;
                mesh_network_get_meshid(_net, &_meshid);
                mesh_network_get_channel(_net, &_channel);
-               msgb("[%d] meshid=%s channel=%d", ++i, _meshid, _channel);
-               iter_list = g_list_next(iter_list);
+               msgb("[%d] mesh id=%s channel=%d", i++, _meshid, _channel);
+               iter = g_list_next(iter);
        }
 
-       g_list_free(values);
-
        return RET_SUCCESS;
 }
 
@@ -156,28 +139,23 @@ static int run_show_scanned_network(MManager *mm, struct menu_data *menu)
        char *_meshid = NULL;
        int _channel = 1;
 
-       GList *values = NULL;
-       GList *iter_list = NULL;
+       GList *iter = NULL;
 
-       if (NULL == g_hash_scan_net_list) {
+       if (NULL == g_scanned_network_list) {
                msgp("There is not any scan result.. do scan first");
                return RET_FAILURE;
        }
 
        msg("Scan Results : ");
-       values = g_hash_table_get_values(g_hash_scan_net_list);
-       iter_list = values;
-
-       while (iter_list != NULL) {
-               mesh_network_h _net = iter_list->data;
+       iter = g_scanned_network_list;
+       while (iter != NULL) {
+               mesh_network_h _net = iter->data;
                mesh_network_get_meshid(_net, &_meshid);
                mesh_network_get_channel(_net, &_channel);
-               msgb("[%d] meshid=%s channel=%d", ++i, _meshid, _channel);
-               iter_list = g_list_next(iter_list);
+               msgb("[%d] mesh id=%s channel=%d", i++, _meshid, _channel);
+               iter = g_list_next(iter);
        }
 
-       g_list_free(values);
-
        return RET_SUCCESS;
 }
 
@@ -202,14 +180,12 @@ static int run_get_scanned_mesh_network(MManager *mm, struct menu_data *menu)
 
        /* Clear previous scanned network list */
        g_scan_net_idx = 1;
-       if (g_hash_scan_net_list) {
-               g_hash_table_remove_all(g_hash_scan_net_list);
+       if (g_scanned_network_list) {
+               g_list_free_full(g_scanned_network_list, mesh_network_destroy);
        }
+       g_scanned_network_list = NULL;
 
-       g_hash_scan_net_list =
-               g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, mesh_network_destroy);
-
-       ret = mesh_foreach_scanned_mesh_netwrok(mesh, found_mesh_netwrok_cb, NULL);
+       ret = mesh_foreach_scanned_mesh_network(mesh, found_mesh_network_cb, NULL);
        if (ret != 0) {
                msg("Failed to mesh_foreach_scanned_mesh_network: [%s(0x%X)]",
                                mesh_error_to_string(ret), ret);
@@ -300,9 +276,9 @@ static int run_get_joined_mesh_network(MManager *mm, struct menu_data *menu)
        }
 
        mesh_network_get_meshid(network, &_meshid);
-       msgp("meshid = %s", _meshid);
+       msgp("mesh id = %s", _meshid);
        mesh_network_get_bssid(network, &_bssid);
-       msgp("bssid = %s", _bssid);
+       msgp("bssid   = %s", _bssid);
        mesh_network_get_channel(network, &_channel);
        msgp("channel = %d", _channel);
        return RET_SUCCESS;
@@ -412,14 +388,12 @@ static int run_get_saved_network(MManager *mm, struct menu_data *menu)
 
        /* Clear previous saved network configurations */
        g_saved_net_idx = 1;
-       if (g_hash_saved_net_list) {
-               g_hash_table_remove_all(g_hash_saved_net_list);
+       if (g_saved_network_list) {
+               g_list_free_full(g_saved_network_list, mesh_network_destroy);
        }
+       g_saved_network_list = NULL;
 
-       g_hash_saved_net_list =
-               g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, mesh_network_destroy);
-
-       ret = mesh_foreach_saved_mesh_network(mesh, saved_mesh_netwrok_cb, NULL);
+       ret = mesh_foreach_saved_mesh_network(mesh, saved_mesh_network_cb, NULL);
        if (ret != 0) {
                msg("Failed to mesh_foreach_saved_mesh_network: [%s(0x%X)]",
                                mesh_error_to_string(ret), ret);
@@ -439,8 +413,8 @@ static int run_add_network(MManager *mm, struct menu_data *menu)
        if (strlen(network_idx))
                idx = (unsigned short)strtol(network_idx, NULL, 10);
 
-       if (g_hash_scan_net_list) {
-               net = g_hash_table_lookup(g_hash_scan_net_list, GINT_TO_POINTER(idx));
+       if (g_scanned_network_list) {
+               net = g_list_nth_data(g_scanned_network_list, idx);
                if (NULL == net) {
                        msg("Failed to find candidate network");
                        return RET_FAILURE;
@@ -490,8 +464,8 @@ static int run_select_network(MManager *mm, struct menu_data *menu)
        if (strlen(network_idx))
                idx = (unsigned short)strtol(network_idx, NULL, 10);
 
-       if (g_hash_saved_net_list) {
-               net = g_hash_table_find(g_hash_saved_net_list, _mesh_lookup_by_id, GINT_TO_POINTER(idx));
+       if (g_saved_network_list) {
+               net = g_list_nth_data(g_saved_network_list, idx);
                if (NULL == net) {
                        msg("Failed to g_hash_table_find");
                        return RET_FAILURE;
@@ -518,8 +492,8 @@ static int run_remove_network(MManager *mm, struct menu_data *menu)
        if (strlen(network_idx))
                idx = (unsigned short)strtol(network_idx, NULL, 10);
 
-       if (g_hash_saved_net_list) {
-               net = g_hash_table_find(g_hash_saved_net_list, _mesh_lookup_by_id, GINT_TO_POINTER(idx));
+       if (g_saved_network_list) {
+               net = g_list_nth_data(g_saved_network_list, idx);
                if (NULL == net) {
                        msg("Failed to g_hash_table_find");
                        return RET_FAILURE;