* to IEEE80211_KEYIX_NONE when deleting a unicast key.
*/
struct ieee80211req_del_key {
- ieee80211_keyix_t idk_keyix; /* key index */
+ u_int8_t idk_keyix; /* key index */
u_int8_t idk_macaddr[IEEE80211_ADDR_LEN];
};
ieee80211_keyix_t kix;
kix = erq->flags & IW_ENCODE_INDEX;
+ if ((erq->flags & IW_ENCODE_INDEX) == (u_int8_t)IEEE80211_KEYIX_NONE)
+ kix = IEEE80211_KEYIX_NONE;
if (kix < 1 || kix > IEEE80211_WEP_NKID) {
kix = vap->iv_def_txkey;
if (kix == IEEE80211_KEYIX_NONE)
ieee80211_keyix_t kix;
kix = dk->idk_keyix;
+ if (dk->idk_keyix == (u_int8_t) IEEE80211_KEYIX_NONE)
+ kix = IEEE80211_KEYIX_NONE;
- /* XXX: This cast can be removed when struct ieee80211req_del_key is
- * fixed. */
- if (dk->idk_keyix == IEEE80211_KEYIX_NONE) {
+ if (kix == IEEE80211_KEYIX_NONE) {
struct ieee80211_node *ni;
ni = ieee80211_find_node(&ic->ic_sta, dk->idk_macaddr);
static void
usage(void)
{
- fprintf(stderr, "usage: %s [-i device] keyix cipher keyval [mac]\n",
+ fprintf(stderr, "usage: %s [-i device] [-d] keyix cipher keyval [mac]\n",
progname);
exit(-1);
}