diff options
-rwxr-xr-x | gsupplicant/supplicant.c | 2 | ||||
-rwxr-xr-x | src/service.c | 11 |
2 files changed, 9 insertions, 4 deletions
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index 6c997ba5..8e055f3a 100755 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -2169,7 +2169,7 @@ static void update_bssid_list(gpointer key, gpointer value, gpointer user_data) bssids->score_last_connected_bssid = calculate_score_last_connected_bssid(bssids->is_last_connected); bssids->score_assoc_reject = calculate_score_assoc_reject(bssids->assoc_reject_cnt); bssids->score_frequency = calculate_score_frequency(bss->signal, bssids->frequency); - bssids->score_strength = calculate_score_strength(bssids->strength); + bssids->score_strength = calculate_score_strength(bss->signal); bssids->score_snr = (int)bss->snr; bssids->score_est_throughput = calculate_score_est_throughput(bss->est_throughput); diff --git a/src/service.c b/src/service.c index 6b2b9801..9dfc6754 100755 --- a/src/service.c +++ b/src/service.c @@ -7959,7 +7959,7 @@ static int calculate_score_frequency(struct connman_service *service) switch (ins_settings.preferred_freq) { case CONNMAN_INS_PREFERRED_FREQ_24GHZ: - if ((frequency >= FREQ_RANGE_24GHZ_CHANNEL_14 && + if ((frequency >= FREQ_RANGE_24GHZ_CHANNEL_1 && frequency <= FREQ_RANGE_24GHZ_CHANNEL_14) && (service->strength >= ins_settings.signal_level3_24ghz)) score += ins_settings.preferred_freq_score; @@ -11186,8 +11186,13 @@ static void ins_setting_init(void) ins_settings.preferred_freq_score = connman_setting_get_uint("INSPreferredFreqScore"); ins_settings.internet_score = connman_setting_get_uint("INSInternetScore"); - ins_settings.signal_level3_5ghz = connman_setting_get_int("INSSignalLevel3_5GHz"); - ins_settings.signal_level3_24ghz = connman_setting_get_int("INSSignalLevel3_24GHz"); + /* + * In ConnMan, signal strength is used after being converted + * to positive value(signal strength + 120). + * So the value for comparison should also be converted to the same. + */ + ins_settings.signal_level3_5ghz = connman_setting_get_int("INSSignalLevel3_5GHz") + 120; + ins_settings.signal_level3_24ghz = connman_setting_get_int("INSSignalLevel3_24GHz") + 120; DBG("last_user_selection [%s]", ins_settings.last_user_selection ? "true" : "false"); DBG("last_user_selection_time [%d]", ins_settings.last_user_selection_time); |