service: preventing to call ready state more than once.
authorTomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Fri, 8 Jul 2011 16:31:03 +0000 (19:31 +0300)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 8 Jul 2011 18:01:34 +0000 (20:01 +0200)
src/service.c

index 04bc51c..495e4de 100644 (file)
@@ -363,7 +363,8 @@ static enum connman_service_state combine_state(
        }
 
        if (state_a == CONNMAN_SERVICE_STATE_READY) {
-               if (state_b == CONNMAN_SERVICE_STATE_ONLINE)
+               if (state_b == CONNMAN_SERVICE_STATE_ONLINE ||
+                               state_b == CONNMAN_SERVICE_STATE_DISCONNECT)
                        result = state_b;
                else
                        result = state_a;
@@ -371,7 +372,8 @@ static enum connman_service_state combine_state(
        }
 
        if (state_b == CONNMAN_SERVICE_STATE_READY) {
-               if (state_a == CONNMAN_SERVICE_STATE_ONLINE)
+               if (state_a == CONNMAN_SERVICE_STATE_ONLINE ||
+                               state_a == CONNMAN_SERVICE_STATE_DISCONNECT)
                        result = state_a;
                else
                        result = state_b;
@@ -389,12 +391,12 @@ static enum connman_service_state combine_state(
        }
 
        if (state_a == CONNMAN_SERVICE_STATE_DISCONNECT) {
-               result = state_b;
+               result = state_a;
                goto done;
        }
 
        if (state_b == CONNMAN_SERVICE_STATE_DISCONNECT) {
-               result = state_a;
+               result = state_b;
                goto done;
        }