diff options
author | Damien Bergamini <damien@cvs.openbsd.org> | 2006-08-04 17:49:43 +0000 |
---|---|---|
committer | Damien Bergamini <damien@cvs.openbsd.org> | 2006-08-04 17:49:43 +0000 |
commit | 2121683db155b75d56efc40bed65f7c98a187705 (patch) | |
tree | e671e108f6b4344c2577d5b0ab712fa2bb263c1f | |
parent | f7d7e97676efe6f8ec19eb6a4c7c4b1d1735d6eb (diff) |
use ic->ic_myaddr instead of LLADDR(ifp->if_sadl) to build management
frames headers, just like net80211 does.
ok mglocker@
-rw-r--r-- | sys/dev/ic/acx.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/sys/dev/ic/acx.c b/sys/dev/ic/acx.c index 71562d43107..3414338ba4c 100644 --- a/sys/dev/ic/acx.c +++ b/sys/dev/ic/acx.c @@ -1,4 +1,4 @@ -/* $OpenBSD: acx.c,v 1.12 2006/08/04 12:24:46 jsg Exp $ */ +/* $OpenBSD: acx.c,v 1.13 2006/08/04 17:49:42 damien Exp $ */ /* * Copyright (c) 2006 Jonathan Gray <jsg@openbsd.org> @@ -2414,14 +2414,14 @@ acx_set_null_tmplt(struct acx_softc *sc) { struct acx_tmplt_null_data n; struct ieee80211_frame *f; - struct ifnet *ifp = &sc->sc_ic.ic_if; + struct ieee80211com *ic = &sc->sc_ic; bzero(&n, sizeof(n)); f = &n.data; f->i_fc[0] = IEEE80211_FC0_SUBTYPE_NODATA | IEEE80211_FC0_TYPE_DATA; IEEE80211_ADDR_COPY(f->i_addr1, etherbroadcastaddr); - IEEE80211_ADDR_COPY(f->i_addr2, LLADDR(ifp->if_sadl)); + IEEE80211_ADDR_COPY(f->i_addr2, ic->ic_myaddr); IEEE80211_ADDR_COPY(f->i_addr3, etherbroadcastaddr); return _acx_set_null_data_tmplt(sc, &n, sizeof(n)); @@ -2432,7 +2432,7 @@ acx_set_probe_req_tmplt(struct acx_softc *sc, const char *ssid, int ssid_len) { struct acx_tmplt_probe_req req; struct ieee80211_frame *f; - struct ifnet *ifp = &sc->sc_ic.ic_if; + struct ieee80211com *ic = &sc->sc_ic; uint8_t *v; int vlen; @@ -2441,13 +2441,13 @@ acx_set_probe_req_tmplt(struct acx_softc *sc, const char *ssid, int ssid_len) f = &req.data.u_data.f; f->i_fc[0] = IEEE80211_FC0_SUBTYPE_PROBE_REQ | IEEE80211_FC0_TYPE_MGT; IEEE80211_ADDR_COPY(f->i_addr1, etherbroadcastaddr); - IEEE80211_ADDR_COPY(f->i_addr2, LLADDR(ifp->if_sadl)); + IEEE80211_ADDR_COPY(f->i_addr2, ic->ic_myaddr); IEEE80211_ADDR_COPY(f->i_addr3, etherbroadcastaddr); v = req.data.u_data.var; v = ieee80211_add_ssid(v, ssid, ssid_len); - v = ieee80211_add_rates(v, &sc->sc_ic.ic_sup_rates[sc->chip_phymode]); - v = ieee80211_add_xrates(v, &sc->sc_ic.ic_sup_rates[sc->chip_phymode]); + v = ieee80211_add_rates(v, &ic->ic_sup_rates[sc->chip_phymode]); + v = ieee80211_add_xrates(v, &ic->ic_sup_rates[sc->chip_phymode]); vlen = v - req.data.u_data.var; return _acx_set_probe_req_tmplt(sc, &req, @@ -2461,7 +2461,6 @@ acx_set_probe_resp_tmplt(struct acx_softc *sc, const char *ssid, int ssid_len, struct acx_tmplt_probe_resp resp; struct ieee80211_frame *f; struct ieee80211com *ic = &sc->sc_ic; - struct ifnet *ifp = &ic->ic_if; uint8_t *v; int vlen; @@ -2470,8 +2469,8 @@ acx_set_probe_resp_tmplt(struct acx_softc *sc, const char *ssid, int ssid_len, f = &resp.data.u_data.f; f->i_fc[0] = IEEE80211_FC0_SUBTYPE_PROBE_RESP | IEEE80211_FC0_TYPE_MGT; IEEE80211_ADDR_COPY(f->i_addr1, etherbroadcastaddr); - IEEE80211_ADDR_COPY(f->i_addr2, LLADDR(ifp->if_sadl)); - IEEE80211_ADDR_COPY(f->i_addr3, LLADDR(ifp->if_sadl)); + IEEE80211_ADDR_COPY(f->i_addr2, ic->ic_myaddr); + IEEE80211_ADDR_COPY(f->i_addr3, ic->ic_myaddr); resp.data.u_data.beacon_intvl = htole16(acx_beacon_intvl); resp.data.u_data.cap = htole16(IEEE80211_CAPINFO_IBSS); @@ -2506,7 +2505,6 @@ acx_set_beacon_tmplt(struct acx_softc *sc, const char *ssid, int ssid_len, struct acx_tmplt_beacon beacon; struct ieee80211_frame *f; struct ieee80211com *ic = &sc->sc_ic; - struct ifnet *ifp = &ic->ic_if; uint8_t *v; int vlen; @@ -2515,8 +2513,8 @@ acx_set_beacon_tmplt(struct acx_softc *sc, const char *ssid, int ssid_len, f = &beacon.data.u_data.f; f->i_fc[0] = IEEE80211_FC0_SUBTYPE_BEACON | IEEE80211_FC0_TYPE_MGT; IEEE80211_ADDR_COPY(f->i_addr1, etherbroadcastaddr); - IEEE80211_ADDR_COPY(f->i_addr2, LLADDR(ifp->if_sadl)); - IEEE80211_ADDR_COPY(f->i_addr3, LLADDR(ifp->if_sadl)); + IEEE80211_ADDR_COPY(f->i_addr2, ic->ic_myaddr); + IEEE80211_ADDR_COPY(f->i_addr3, ic->ic_myaddr); beacon.data.u_data.beacon_intvl = htole16(acx_beacon_intvl); beacon.data.u_data.cap = htole16(IEEE80211_CAPINFO_IBSS); |