~ubuntu-branches/ubuntu/precise/wpasupplicant/precise-proposed

« back to all changes in this revision

Viewing changes to wpa_supplicant/ctrl_iface.c

  • Committer: Package Import Robot
  • Author(s): Mathieu Trudel-Lapierre
  • Date: 2013-06-12 15:57:50 UTC
  • Revision ID: package-import@ubuntu.com-20130612155750-go9lgylcef8n3f2f
Tags: 0.7.3-6ubuntu2.2
* Multiple patches to reduce the number of disconnections for WPA Enterprise
  roaming and Opportunistic Key Caching. (LP: #1187524)
* In debian/patches:
  0001-sme-fix-retry-after-auth-assoc-timeout-failure.patch,
  0002-sme-optimize-recovery-from-common-load-balancing-mechanisms.patch,
  0003-sme-blacklist-bss-on-first-failure-if-only-a-*.patch,
  0004-sme-extend-load-balancing-optimization-in-bss-blacklisting.patch,
  0005-sme-optimize-recovery-from-association-command-failures.patch,
  0006-sme-add-timers-for-authentication-and-association.patch,
  0007-sme-nl80211-set-cipher-suites.patch:
  Cherry-pick patches fixing SME (Session Management Entity) for the nl80211
  driver, which works as a basis for the OKC patches.
* In debian/patches:
  0001-pmkokc-Set-portValid-TRUE-on-association-for-driver-based-4.patch,
  0002-pmkokc-Clear-WPA-and-EAPOL-state-machine-config-pointer-on-.patch,
  0003-pmkokc-Clear-driver-PMKSA-cache-entry-on-PMKSA-cache-expira.patch,
  0004-pmkokc-Flush-PMKSA-cache-entries-and-invalidate-EAP-state-o.patch,
  0005-pmkokc-Fix-proactive_key_caching-configuration-to-WPA-code.patch,
  0006-pmkokc-RSN-Add-a-debug-message-when-considing-addition-of-O.patch,
  0007-pmkokc-Clear-OKC-based-PMKSA-caching-entries-if-PMK-is-chan.patch,
  0008-pmkokc-Move-wpa_sm_remove_pmkid-call-to-PMKSA-cache-entry-f.patch,
  0009-pmkokc-Use-PMKSA-cache-entries-with-only-a-single-network-c.patch,
  0010-pmkokc-PMKSA-Do-not-evict-active-cache-entry-when-adding-ne.patch,
  0011-pmkokc-PMKSA-Set-cur_pmksa-pointer-during-initial-associati.patch,
  0012-pmkokc-PMKSA-make-deauthentication-due-to-cache-entry-remov.patch,
  0013-pmkokc-PMKSA-update-current-cache-entry-due-to-association-.patch:
  Cherry-pick patches to properly do OKC (Opportunistic Key Caching) which
  helps maintaining connectivity on networks secured with WPA Enterprise,
  especially on nl80211-based drivers -- these patches require SME, and add
  or fix key caching and handling of the cache entries.
* debian/patches/force-enable-okc.patch: force Opportunistic Key Caching to
  be enabled.
* debian/patches/less-aggressive-roaming.patch: use less aggressive roaming
  settings to avoid switching to another AP unnecessarily, when the actual
  signal level difference is small.
* debian/patches/wpa_supplicant-dbus-null-error.patch: Don't send NULL to
  dbus_message_new_error().
* debian/patches/0001-nl80211-Fix-UNSPEC-signal-quality-reporting.patch: fix
  marking qual as invalid rather than signal level.
* debian/patches/wpa_supplicant-squelch-driver-disconnect-spam.patch: recover
  cleanly from streams of disconnect messages (like on iwl3945).
* debian/patches/wpa_supplicant-assoc-timeout.patch: increase association
  timeouts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1018
1018
                        wpas_notify_network_removed(wpa_s, remove_ssid);
1019
1019
                        wpa_config_remove_network(wpa_s->conf, id);
1020
1020
                }
 
1021
                eapol_sm_invalidate_cached_session(wpa_s->eapol);
1021
1022
                if (wpa_s->current_ssid) {
1022
 
                        eapol_sm_invalidate_cached_session(wpa_s->eapol);
 
1023
                        wpa_sm_set_config(wpa_s->wpa, NULL);
 
1024
                        eapol_sm_notify_config(wpa_s->eapol, NULL, NULL);
1023
1025
                        wpa_supplicant_disassociate(wpa_s,
1024
1026
                                                    WLAN_REASON_DEAUTH_LEAVING);
1025
1027
                }
1037
1039
                return -1;
1038
1040
        }
1039
1041
 
 
1042
        if (ssid == wpa_s->current_ssid || wpa_s->current_ssid == NULL) {
 
1043
                /*
 
1044
                 * Invalidate the EAP session cache if the current or
 
1045
                 * previously used network is removed.
 
1046
                 */
 
1047
                eapol_sm_invalidate_cached_session(wpa_s->eapol);
 
1048
        }
 
1049
 
1040
1050
        if (ssid == wpa_s->current_ssid) {
1041
 
                /*
1042
 
                 * Invalidate the EAP session cache if the current network is
1043
 
                 * removed.
1044
 
                 */
1045
 
                eapol_sm_invalidate_cached_session(wpa_s->eapol);
 
1051
                wpa_sm_set_config(wpa_s->wpa, NULL);
 
1052
                eapol_sm_notify_config(wpa_s->eapol, NULL, NULL);
1046
1053
 
1047
1054
                wpa_supplicant_disassociate(wpa_s, WLAN_REASON_DEAUTH_LEAVING);
1048
1055
        }
1088
1095
                return -1;
1089
1096
        }
1090
1097
 
1091
 
        if (wpa_s->current_ssid == ssid) {
 
1098
        wpa_sm_pmksa_cache_flush(wpa_s->wpa, ssid);
 
1099
 
 
1100
        if (wpa_s->current_ssid == ssid || wpa_s->current_ssid == NULL) {
1092
1101
                /*
1093
1102
                 * Invalidate the EAP session cache if anything in the current
1094
 
                 * configuration changes.
 
1103
                 * or previously used configuration changes.
1095
1104
                 */
1096
1105
                eapol_sm_invalidate_cached_session(wpa_s->eapol);
1097
1106
        }