diff options
| author | Sam Leffler <sam@FreeBSD.org> | 2007-03-31 22:49:55 +0000 |
|---|---|---|
| committer | Sam Leffler <sam@FreeBSD.org> | 2007-03-31 22:49:55 +0000 |
| commit | 6ef12dac7941ba998430f6be737d023a99806ea8 (patch) | |
| tree | 73ead29c27a073c9bb02a6532acabf849d2ac4db /sys/net80211 | |
| parent | 05499252b35d159a3f6fdbc6120dff0e58d112cb (diff) | |
Notes
Diffstat (limited to 'sys/net80211')
| -rw-r--r-- | sys/net80211/ieee80211_crypto.c | 4 | ||||
| -rw-r--r-- | sys/net80211/ieee80211_crypto.h | 3 | ||||
| -rw-r--r-- | sys/net80211/ieee80211_output.c | 10 |
3 files changed, 10 insertions, 7 deletions
diff --git a/sys/net80211/ieee80211_crypto.c b/sys/net80211/ieee80211_crypto.c index e9ce1351ebe3..4f6013352f15 100644 --- a/sys/net80211/ieee80211_crypto.c +++ b/sys/net80211/ieee80211_crypto.c @@ -521,7 +521,7 @@ ieee80211_crypto_encap(struct ieee80211com *ic, */ wh = mtod(m, struct ieee80211_frame *); if (IEEE80211_IS_MULTICAST(wh->i_addr1) || - ni->ni_ucastkey.wk_cipher == &ieee80211_cipher_none) { + IEEE80211_KEY_UNDEFINED(&ni->ni_ucastkey)) { if (ic->ic_def_txkey == IEEE80211_KEYIX_NONE) { IEEE80211_DPRINTF(ic, IEEE80211_MSG_CRYPTO, "[%s] no default transmit key (%s) deftxkey %u\n", @@ -577,7 +577,7 @@ ieee80211_crypto_decap(struct ieee80211com *ic, ivp = mtod(m, const u_int8_t *) + hdrlen; /* XXX contig */ keyid = ivp[IEEE80211_WEP_IVLEN]; if (IEEE80211_IS_MULTICAST(wh->i_addr1) || - ni->ni_ucastkey.wk_cipher == &ieee80211_cipher_none) + IEEE80211_KEY_UNDEFINED(&ni->ni_ucastkey)) k = &ic->ic_nw_keys[keyid >> 6]; else k = &ni->ni_ucastkey; diff --git a/sys/net80211/ieee80211_crypto.h b/sys/net80211/ieee80211_crypto.h index f006a7aa0501..3df3e07448f0 100644 --- a/sys/net80211/ieee80211_crypto.h +++ b/sys/net80211/ieee80211_crypto.h @@ -169,6 +169,9 @@ struct ieee80211_cipher { }; extern const struct ieee80211_cipher ieee80211_cipher_none; +#define IEEE80211_KEY_UNDEFINED(k) \ + ((k)->wk_cipher == &ieee80211_cipher_none) + void ieee80211_crypto_register(const struct ieee80211_cipher *); void ieee80211_crypto_unregister(const struct ieee80211_cipher *); int ieee80211_crypto_available(u_int cipher); diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c index 63e0d307b331..ae2841346013 100644 --- a/sys/net80211/ieee80211_output.c +++ b/sys/net80211/ieee80211_output.c @@ -450,7 +450,6 @@ ieee80211_mbuf_adjust(struct ieee80211com *ic, int hdrsize, #undef TO_BE_RECLAIMED } -#define KEY_UNDEFINED(k) ((k).wk_cipher == &ieee80211_cipher_none) /* * Return the transmit key to use in sending a unicast frame. * If a unicast key is set we use that. When no unicast key is set @@ -459,9 +458,9 @@ ieee80211_mbuf_adjust(struct ieee80211com *ic, int hdrsize, static __inline struct ieee80211_key * ieee80211_crypto_getucastkey(struct ieee80211com *ic, struct ieee80211_node *ni) { - if (KEY_UNDEFINED(ni->ni_ucastkey)) { + if (IEEE80211_KEY_UNDEFINED(&ni->ni_ucastkey)) { if (ic->ic_def_txkey == IEEE80211_KEYIX_NONE || - KEY_UNDEFINED(ic->ic_nw_keys[ic->ic_def_txkey])) + IEEE80211_KEY_UNDEFINED(&ic->ic_nw_keys[ic->ic_def_txkey])) return NULL; return &ic->ic_nw_keys[ic->ic_def_txkey]; } else { @@ -478,7 +477,7 @@ static __inline struct ieee80211_key * ieee80211_crypto_getmcastkey(struct ieee80211com *ic, struct ieee80211_node *ni) { if (ic->ic_def_txkey == IEEE80211_KEYIX_NONE || - KEY_UNDEFINED(ic->ic_nw_keys[ic->ic_def_txkey])) + IEEE80211_KEY_UNDEFINED(&ic->ic_nw_keys[ic->ic_def_txkey])) return NULL; return &ic->ic_nw_keys[ic->ic_def_txkey]; } @@ -629,7 +628,8 @@ ieee80211_encap(struct ieee80211com *ic, struct mbuf *m, if (eh.ether_type != htons(ETHERTYPE_PAE) || ((ic->ic_flags & IEEE80211_F_WPA) && (ic->ic_opmode == IEEE80211_M_STA ? - !KEY_UNDEFINED(*key) : !KEY_UNDEFINED(ni->ni_ucastkey)))) { + !IEEE80211_KEY_UNDEFINED(key) : + !IEEE80211_KEY_UNDEFINED(&ni->ni_ucastkey)))) { wh->i_fc[1] |= IEEE80211_FC1_WEP; /* XXX do fragmentation */ if (!ieee80211_crypto_enmic(ic, key, m, 0)) { |
