[pkg-wpa-devel] Bug#428304: Bug#428304: should reassociate when ifup fails
Kel Modderman
kel at otaku42.de
Wed Jul 11 11:22:19 UTC 2007
On Wed, 13 Jun 2007 09:38:40 am Elmar Hoffmann wrote:
> > Also, this patch has the potential to bing back the "re-association
> > storm" phenomenon that the wpa_hysteresis_{event,check} functions were
> > designed to prevent. This could lead to an uncontrollable loop of failed
> > re-association and failed ifup events.
>
> Hmm yes, this might be an issue with cases other than DHCP (which
> takes a while before it gives up) that fail immediately.
> OTOH in my experience wpasupplicant also takes a while to react to an
> reassociate request (and any normal disconnect and connect events
> inbetween would be covered by the hysteresis), so that loop should not
> be too fast and may not be a problem. I should be able to simulate and
> test that with a broken interface stanza or sth. :)
>
> Still it is (unlike the hysteresis case) quite logical to not stay
> associated to an AP that is not usable as your interface did not
> configure. And while trying over and over again arguably does not help
> in a "one AP with broken DHCP" situation, it sure helps when there are
> more APs wpasupplicant can connect to or when the wireless connection
> is bad enough for DHCP to fail sometimes due to loss of DHCP packets
> but another attempt could work. The latter is the case that made me do
> these changes.
>
> elmar
Is it safe to assume that if wpa_cli reports we have *not* an ip address, that
we would like to reassociate?
If yes, please try this:
Index: wpa_action.sh
===================================================================
--- wpa_action.sh (revision 854)
+++ wpa_action.sh (working copy)
@@ -46,7 +46,12 @@
ifup
fi
wpa_hysteresis_event
- wpa_cli status
+ if wpa_cli status | grep -q '^ip_address='; then
+ wpa_cli status
+ else
+ echo "Status reports no ip_address, asking for reassociation."
+ wpa_cli reassociate
+ fi
;;
"DISCONNECTED")
Thanks, Kel.
More information about the Pkg-wpa-devel
mailing list