DA: Modify INS score source code
[platform/upstream/connman.git] / src / service.c
index 6a6da36..ef86e27 100755 (executable)
@@ -8100,14 +8100,16 @@ static int calculate_score_last_connected(struct connman_service *service)
        frequency = connman_network_get_frequency(service->network);
 
        if (ins_settings.last_connected) {
-               if (g_strcmp0(last_connected_ident, service->identifier) == 0 &&
-                               (((frequency >= FREQ_RANGE_24GHZ_CHANNEL_1 &&
-                               frequency <= FREQ_RANGE_24GHZ_CHANNEL_14) &&
-                               service->strength >= ins_settings.signal_level3_24ghz) ||
-                               ((frequency >= FREQ_RANGE_5GHZ_CHANNEL_32 &&
-                               frequency <= FREQ_RANGE_5GHZ_CHANNEL_165) &&
-                               service->strength >= ins_settings.signal_level3_5ghz))) {
-                       score += ins_settings.last_connected_score;
+               if (ins_settings.last_connected) {
+                       if (g_strcmp0(last_connected_ident, service->identifier) == 0 &&
+                                       (((frequency >= FREQ_RANGE_24GHZ_CHANNEL_1 &&
+                                       frequency <= FREQ_RANGE_24GHZ_CHANNEL_14) &&
+                                       service->strength >= ins_settings.signal_level3_24ghz) ||
+                                       ((frequency >= FREQ_RANGE_5GHZ_CHANNEL_32 &&
+                                       frequency <= FREQ_RANGE_5GHZ_CHANNEL_165) &&
+                                       service->strength >= ins_settings.signal_level3_5ghz))) {
+                               score += ins_settings.last_connected_score;
+                       }
                }
        }
 
@@ -8257,6 +8259,7 @@ static gint service_compare(gconstpointer a, gconstpointer b)
 #if defined TIZEN_EXT && defined TIZEN_EXT_INS
        int score_a;
        int score_b;
+       gint strength = 0;
 #else /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
        gint strength;
 #endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
@@ -8383,6 +8386,11 @@ static gint service_compare(gconstpointer a, gconstpointer b)
        score_b = calculate_score(service_b);
        if (score_b != score_a)
                return score_b - score_a;
+       else if (score_b == score_a) {
+               strength = (gint) service_b->strength - (gint) service_a->strength;
+               if (strength)
+                       return strength;
+       }
 #else /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
        strength = (gint) service_b->strength - (gint) service_a->strength;
        if (strength)