From: Jaehyun Kim Date: Tue, 25 Jul 2023 09:20:04 +0000 (+0900) Subject: Support multiple interfaces in test app X-Git-Tag: accepted/tizen/unified/20230913.172626~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F09%2F298509%2F1;p=platform%2Fcore%2Fapi%2Fwifi-manager.git Support multiple interfaces in test app Change-Id: I666bbab6d8534b4318fd03a435231e002d115393 Signed-off-by: Jaehyun Kim --- diff --git a/tools/manager-test/wman_test_main.c b/tools/manager-test/wman_test_main.c index 4fc185f..347057b 100644 --- a/tools/manager-test/wman_test_main.c +++ b/tools/manager-test/wman_test_main.c @@ -168,9 +168,19 @@ static void __test_dhcp_changed_callback(wifi_manager_dhcp_state_e state, wifi_m (char *)user_data, state, wman_test_strerror(error_code)); } -int wman_test_init(void) +int wman_test_init(const char *ifname) { - int rv = wifi_manager_initialize(&wifi); + int rv; + + if (wifi || wifi2) { + printf("Already initialized\n"); + return -1; + } + + if (!ifname) + rv = wifi_manager_initialize(&wifi); + else + rv = wifi_manager_initialize_with_interface_name(&wifi, ifname); if (rv == WIFI_MANAGER_ERROR_NONE) { wifi_manager_set_device_state_changed_cb(wifi, __test_device_state_callback, "1"); @@ -190,7 +200,10 @@ int wman_test_init(void) return -1; } - rv = wifi_manager_initialize(&wifi2); + if (!ifname) + rv = wifi_manager_initialize(&wifi2); + else + rv = wifi_manager_initialize_with_interface_name(&wifi2, ifname); if (rv == WIFI_MANAGER_ERROR_NONE) { wifi_manager_set_device_state_changed_cb(wifi2, __test_device_state_callback, "2"); @@ -203,6 +216,8 @@ int wman_test_init(void) wifi_manager_set_dhcp_state_changed_cb(wifi2, __test_dhcp_changed_callback, "2"); } else { printf("[2] Wifi init failed [%s]\n", wman_test_strerror(rv)); + wifi_manager_deinitialize(wifi); + wifi = NULL; return -1; } @@ -219,6 +234,8 @@ int wman_test_deinit(void) return -1; } + wifi = NULL; + rv = wifi_manager_deinitialize(wifi2); if (rv != WIFI_MANAGER_ERROR_NONE) { @@ -226,10 +243,27 @@ int wman_test_deinit(void) return -1; } + wifi2 = NULL; + printf("Wifi deinit succeeded\n"); return 1; } +int wman_test_init_with_ifname(void) +{ + int rv; + char ifname[33] = { 0, }; + + printf("Input interface name: "); + rv = scanf(" %32[^\n]s", ifname); + if (rv < 1) + return -1; + + rv = wman_test_init(ifname); + + return rv; +} + gboolean test_thread(GIOChannel *source, GIOCondition condition, gpointer data) { int rv; @@ -254,6 +288,7 @@ gboolean test_thread(GIOChannel *source, GIOCondition condition, gpointer data) printf("Options..\n"); printf(LOG_BLUE "[Public APIs]\n" LOG_END); printf(LOG_GREEN "1 - Wi-Fi init and set callbacks\n" LOG_END); + printf(": - Wi-Fi init and set callbacks with interface name\n"); printf("2 - Wi-Fi deinit(unset callbacks automatically)\n"); printf(LOG_GREEN "3 - Activate Wi-Fi device\n" LOG_END); printf("4 - Deactivate Wi-Fi device\n"); @@ -338,7 +373,10 @@ gboolean test_thread(GIOChannel *source, GIOCondition condition, gpointer data) switch (a[0]) { /* Public API */ case '1': - rv = wman_test_init(); + rv = wman_test_init(NULL); + break; + case ':': + rv = wman_test_init_with_ifname(); break; case '2': rv = wman_test_deinit();