Add timer for subscription
authorCheoleun Moon <chleun.moon@samsung.com>
Tue, 7 Apr 2020 12:08:10 +0000 (21:08 +0900)
committerCheoleun Moon <chleun.moon@samsung.com>
Tue, 7 Apr 2020 12:08:10 +0000 (21:08 +0900)
test/wifi-aware-subscribe-test.c

index e51f809..d6189ac 100644 (file)
@@ -92,6 +92,8 @@
 #define WRONG_PMK "11223344556677889900123456789012"
 #define IPV6_ADDRESS_LEN 39
 
+#define SUBSCRIBE_TIMEOUT 5000
+
 enum {
        CMD_QUIT,
 
@@ -159,6 +161,7 @@ static char g_psk[MAX_PSK_LEN + 1];
 static unsigned char g_pmk[PMK_LEN];
 
 static bool g_service_discovered = false;
+static guint g_timeout_id = 0;
 
 void test_init();
 void test_deinit();
@@ -272,11 +275,20 @@ void test_quit()
        return;
 }
 
+gboolean __subscribed_timeout_handler(gpointer user_data)
+{
+       wifi_aware_session_h session = (wifi_aware_session_h) user_data;
+       PRINT_FAILURE("[TIMEOUT][Subscribe] Session: %p", session);
+       __test_finish(0);
+       return FALSE;
+}
+
 static void __subscribed_cb(wifi_aware_session_h session,
                wifi_aware_error_e error, void *user_data)
 {
        if (error == WIFI_AWARE_ERROR_NONE) {
                PRINT_SUCCESS("[CB][Subscribe] Requested");
+               g_timeout_id = g_timeout_add(SUBSCRIBE_TIMEOUT, __subscribed_timeout_handler, session);
        } else {
                PRINT_FAILURE_ERROR("[CB][Subscribe]", error);
                __test_finish(0);
@@ -429,6 +441,9 @@ static void __service_discovered_cb(wifi_aware_session_h session,
        int ret = 0;
 
        PRINT_SUCCESS("[Event][Serivce Discovered]");
+       if (g_timeout_id > 0)
+               g_source_remove(g_timeout_id);
+
        ret = wifi_aware_peer_get_mac(peer, &mac);
        if (ret != WIFI_AWARE_ERROR_NONE) {
                printf("\tPeer's NMI: Failure(%d:%s)\n", ret, __print_error(ret));