The order between the device signal and the service signal has been changed
[platform/upstream/connman.git] / src / service.c
index da60efc..66f6d5a 100755 (executable)
@@ -8727,6 +8727,14 @@ static int service_indicate_state(struct connman_service *service)
                searchdomain_remove_all(service);
 
        service->state = new_state;
+#if defined TIZEN_EXT
+       if (!is_connected(old_state) && is_connected(new_state))
+               connman_device_send_connected_signal(
+                               connman_network_get_device(service->network), true);
+       else if (is_connected(old_state) && !is_connected(new_state))
+               connman_device_send_connected_signal(
+                               connman_network_get_device(service->network), false);
+#endif
        state_changed(service);
 
        if (!is_connected(old_state) && is_connected(new_state))
@@ -8831,10 +8839,6 @@ static int service_indicate_state(struct connman_service *service)
 #if defined TIZEN_EXT
                if (service->type == CONNMAN_SERVICE_TYPE_WIFI)
                        set_priority_connected_service();
-
-               if (!is_connected(old_state))
-                       connman_device_send_connected_signal(
-                                       connman_network_get_device(service->network), true);
 #endif
 
                break;
@@ -8926,10 +8930,6 @@ static int service_indicate_state(struct connman_service *service)
                (old_state == CONNMAN_SERVICE_STATE_READY &&
                        new_state != CONNMAN_SERVICE_STATE_ONLINE)) {
                __connman_notifier_disconnect(service->type);
-#if defined TIZEN_EXT
-               connman_device_send_connected_signal(
-                               connman_network_get_device(service->network), false);
-#endif
        }
 
        if (new_state == CONNMAN_SERVICE_STATE_ONLINE) {