Hi Stefan!
sorry for the even longer delay - but dayjob was demanding, working
even on sunday.
However, if you can read this message, it means that I am connected
through the internal ipw card to WEP WiFi at the first attempt.
Wonderful. Great work, Stefan,
Both patches together applied, of course.
Outside on the balcony... battery works too checked with GNUstep's
battery monitor (written.. by me). Mail written with GNUMail... it got
me some tricks to get GNUstep linking, but also that was solved.
Riccardo
On 2021-03-17 16:09:32 +0100 Stefan Sperling <stsp@stsp.name> wrote:
>
> My best guess is that because ipw doesn't bother with calling into
> the net80211 newstate function, the interface's link state is never
> updated and packets cannot flow. With WPA, link state gets updated
> as a side-effect of a successful WPA handshake.
>
> Does this fix it?
>
> diff 1ff4cf56fdff3473d72fc4b29d69428c688d47c6 /usr/src
> blob - ab16cd51ba6a2efdf89ac588801a1ae2bc714ed5
> file + sys/dev/pci/if_ipw.c
> --- sys/dev/pci/if_ipw.c
> +++ sys/dev/pci/if_ipw.c
> @@ -679,7 +679,11 @@ int
> ipw_newstate(struct ieee80211com *ic, enum ieee80211_state nstate,
> int arg)
> {
> struct ipw_softc *sc = ic->ic_softc;
> + struct ifnet *ifp = &ic->ic_if;
>
> + if (LINK_STATE_IS_UP(ifp->if_link_state))
> + ieee80211_set_link_state(ic, LINK_STATE_DOWN);
> +
> switch (nstate) {
> case IEEE80211_S_SCAN:
> task_add(systq, &sc->sc_scantask);
> @@ -690,6 +694,14 @@ ipw_newstate(struct ieee80211com *ic, enum
> ieee80211_s
> break;
>
> case IEEE80211_S_RUN:
> + if (!(ic->ic_flags & IEEE80211_F_RSNON)) {
> + /*
> + * NB: When RSN is enabled, we defer setting
> + * the link up until the port is valid.
> + */
> + ieee80211_set_link_state(ic, LINK_STATE_UP);
> + }
> + break;
> case IEEE80211_S_INIT:
> case IEEE80211_S_ASSOC:
> /* nothing to do */
>
--
GNUMail running on GNUstep on OpenBSD/i386 Toshiba Tecra
No comments:
Post a Comment