Modified the signal handler for overlap connection/disconnection callback 60/95560/8 accepted/tizen/common/20161114.171559 accepted/tizen/ivi/20161114.074503 accepted/tizen/mobile/20161114.074411 accepted/tizen/tv/20161114.074427 accepted/tizen/wearable/20161114.074447 submit/tizen/20161114.043131
authortaesub.kim <taesub.kim@samsung.com>
Fri, 4 Nov 2016 00:05:57 +0000 (09:05 +0900)
committertaesub.kim <taesub.kim@samsung.com>
Wed, 9 Nov 2016 23:43:58 +0000 (08:43 +0900)
Change-Id: I17022b2c61854d8dc6c2da9410f545d3caf1c750
Signed-off-by: Taesub Kim <taesub.kim@samsung.com>
src/network-signal-handler.c

index 98cf64d..822b900 100755 (executable)
@@ -430,6 +430,8 @@ static int __net_handle_service_state_changed(const gchar *sig_path,
                                NetworkInfo.wifi_state == WIFI_CONNECTED) {
                        NetworkInfo.wifi_state = WIFI_ON;
                }
+               if (old_state == NET_STATE_TYPE_DISCONNECT)
+                       break;
        case NET_STATE_TYPE_ASSOCIATION:
        case NET_STATE_TYPE_CONFIGURATION:
                __net_handle_state_ind(sig_path, new_state);
@@ -487,8 +489,7 @@ static int __net_handle_service_state_changed(const gchar *sig_path,
                        g_strlcpy(event_data.ProfileName, sig_path, NET_PROFILE_NAME_LEN_MAX+1);
 
                        _net_client_callback(&event_data);
-               } else
-                       __net_handle_state_ind(sig_path, new_state);
+               }
 
                break;
        }
@@ -501,22 +502,6 @@ static int __net_handle_service_state_changed(const gchar *sig_path,
                const char *svc_name3 =
                                request_table[NETWORK_REQUEST_TYPE_ENROLL_WPS].ProfileName;
 
-               if (request_table[NETWORK_REQUEST_TYPE_OPEN_CONNECTION].flag != TRUE &&
-                       request_table[NETWORK_REQUEST_TYPE_ENROLL_WPS].flag != TRUE &&
-                       request_table[NETWORK_REQUEST_TYPE_CLOSE_CONNECTION].flag != TRUE) {
-                       /** Send Close Ind */
-                       event_data.Error = Error;
-                       event_data.Event =  NET_EVENT_CLOSE_IND;
-                       g_strlcpy(event_data.ProfileName, sig_path, NET_PROFILE_NAME_LEN_MAX+1);
-
-                       event_data.Datalength = 0;
-                       event_data.Data = NULL;
-
-                       NETWORK_LOG(NETWORK_LOW, "Sending NET_EVENT_CLOSE_IND");
-
-                       _net_client_callback(&event_data);
-               }
-
                if (request_table[NETWORK_REQUEST_TYPE_OPEN_CONNECTION].flag == TRUE &&
                                strstr(sig_path, svc_name2) != NULL) {
                        memset(&request_table[NETWORK_REQUEST_TYPE_OPEN_CONNECTION], 0,
@@ -535,6 +520,7 @@ static int __net_handle_service_state_changed(const gchar *sig_path,
                        _net_dbus_pending_call_unref();
 
                        _net_client_callback(&event_data);
+                       break;
                }
 
                if (request_table[NETWORK_REQUEST_TYPE_ENROLL_WPS].flag == TRUE &&
@@ -554,6 +540,7 @@ static int __net_handle_service_state_changed(const gchar *sig_path,
                        _net_dbus_pending_call_unref();
 
                        _net_client_callback(&event_data);
+                       break;
                }
 
                if (request_table[NETWORK_REQUEST_TYPE_CLOSE_CONNECTION].flag == TRUE &&
@@ -574,7 +561,21 @@ static int __net_handle_service_state_changed(const gchar *sig_path,
                        _net_dbus_pending_call_unref();
 
                        _net_client_callback(&event_data);
+                       break;
                }
+
+               /** Send Close Ind */
+               event_data.Error = Error;
+               event_data.Event = NET_EVENT_CLOSE_IND;
+               g_strlcpy(event_data.ProfileName, sig_path, NET_PROFILE_NAME_LEN_MAX+1);
+
+               event_data.Datalength = 0;
+               event_data.Data = NULL;
+
+               NETWORK_LOG(NETWORK_LOW, "Sending NET_EVENT_CLOSE_IND");
+
+               _net_client_callback(&event_data);
+
                break;
        }
        case NET_STATE_TYPE_FAILURE: