tags 428304 pending thanks On Mon, 11 Jun 2007 02:31:44 am Elmar Hoffmann wrote: > Package: wpasupplicant > Version: 0.6.0~cvs20070224-3 > Severity: normal > Tags: patch > > When ifup of the wireless interface after association fails, > wpa-supplicant happily stays connected (which is useless with an > unusable interface) instead of reassociating (having more luck next > time or eventually choosing a different AP). > > The attached patch fixes this. > > The interesting case of ifup failure is when using the old dhcp-client > or a dhcp3-client with #420784 fixed, that properly fail when unable > to acquire a lease. > I've been successfully using the latter with this patch for a while > now. > > elmar
Hi, I'll probably apply a small adaptation of your patch. Please let me know if you see something wrong. Thanks, Kel. Index: debian/ifupdown/functions.sh =================================================================== --- debian/ifupdown/functions.sh (revision 879) +++ debian/ifupdown/functions.sh (working copy) @@ -749,6 +749,17 @@ return 0 } +ifupdown_status () { + if grep -s -q "^${WPA_IFACE}=${WPA_LOGICAL_IFACE}" "$IFSTATE_FILE"; then + echo "Interface \"$WPA_IFACE\" connected successfully." + return 0 + fi + + echo "Interface \"$WPA_IFACE\" failed to establish a connection." + echo "Attempting reassociation..." + return 1 +} + ##################################################################### ## apply mapping logic and ifup logical interface # Apply mapping logic via id_str or external mapping script, check Index: debian/ifupdown/wpa_action.sh =================================================================== --- debian/ifupdown/wpa_action.sh (revision 879) +++ debian/ifupdown/wpa_action.sh (working copy) @@ -42,11 +42,10 @@ wpa_hysteresis_check || exit 1 wpa_log_action wpa_log_environment - if ifupdown_check; then - ifup - fi + ifupdown_check && ifup wpa_hysteresis_event wpa_cli status + ifupdown_status || wpa_cli reassociate ;; "DISCONNECTED") @@ -63,9 +62,7 @@ "stop"|"down") test_wpa_supplicant || exit 1 kill_wpa_cli - if ifupdown_check; then - ifdown - fi + ifupdown_check && ifdown kill_wpa_supplicant wpa_log_init wpa_log_action -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]