Changeset View
Changeset View
Standalone View
Standalone View
sys/net80211/ieee80211_ioctl.c
| Show First 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | if (error) | ||||
| return error; | return error; | ||||
| kid = ik.ik_keyix; | kid = ik.ik_keyix; | ||||
| if (kid == IEEE80211_KEYIX_NONE) { | if (kid == IEEE80211_KEYIX_NONE) { | ||||
| ni = ieee80211_find_vap_node(&ic->ic_sta, vap, ik.ik_macaddr); | ni = ieee80211_find_vap_node(&ic->ic_sta, vap, ik.ik_macaddr); | ||||
| if (ni == NULL) | if (ni == NULL) | ||||
| return ENOENT; | return ENOENT; | ||||
| wk = &ni->ni_ucastkey; | wk = &ni->ni_ucastkey; | ||||
| } else { | } else { | ||||
| if (kid >= IEEE80211_WEP_NKID) | if (kid >= IEEE80211_MAX_NKID) | ||||
| return EINVAL; | return EINVAL; | ||||
| wk = &vap->iv_nw_keys[kid]; | wk = &vap->iv_nw_keys[kid]; | ||||
| IEEE80211_ADDR_COPY(&ik.ik_macaddr, vap->iv_bss->ni_macaddr); | IEEE80211_ADDR_COPY(&ik.ik_macaddr, vap->iv_bss->ni_macaddr); | ||||
| ni = NULL; | ni = NULL; | ||||
| } | } | ||||
| cip = wk->wk_cipher; | cip = wk->wk_cipher; | ||||
| ik.ik_type = cip->ic_cipher; | ik.ik_type = cip->ic_cipher; | ||||
| ik.ik_keylen = wk->wk_keylen; | ik.ik_keylen = wk->wk_keylen; | ||||
| ▲ Show 20 Lines • Show All 1,067 Lines • ▼ Show 20 Lines | case IEEE80211_MFP_PROTMODE_DISABLED: | ||||
| ireq->i_val = IEEE80211_MFP_DISABLED; | ireq->i_val = IEEE80211_MFP_DISABLED; | ||||
| break; | break; | ||||
| case IEEE80211_MFP_PROTMODE_OPTIONAL: | case IEEE80211_MFP_PROTMODE_OPTIONAL: | ||||
| ireq->i_val = IEEE80211_MFP_OPTIONAL; | ireq->i_val = IEEE80211_MFP_OPTIONAL; | ||||
| break; | break; | ||||
| case IEEE80211_MFP_PROTMODE_REQUIRED: | case IEEE80211_MFP_PROTMODE_REQUIRED: | ||||
| ireq->i_val = IEEE80211_MFP_REQUIRED; | ireq->i_val = IEEE80211_MFP_REQUIRED; | ||||
| break; | break; | ||||
| } | } | ||||
| break; | break; | ||||
| case IEEE80211_IOC_VHTCONF: | case IEEE80211_IOC_VHTCONF: | ||||
| ireq->i_val = vap->iv_vht_flags & IEEE80211_FVHT_MASK; | ireq->i_val = vap->iv_vht_flags & IEEE80211_FVHT_MASK; | ||||
| break; | break; | ||||
| default: | default: | ||||
| error = ieee80211_ioctl_getdefault(vap, ireq); | error = ieee80211_ioctl_getdefault(vap, ireq); | ||||
| break; | break; | ||||
| } | } | ||||
| return error; | return error; | ||||
| Show All 32 Lines | if (kid == IEEE80211_KEYIX_NONE) { | ||||
| } else { | } else { | ||||
| ni = ieee80211_find_vap_node(&vap->iv_ic->ic_sta, vap, | ni = ieee80211_find_vap_node(&vap->iv_ic->ic_sta, vap, | ||||
| ik.ik_macaddr); | ik.ik_macaddr); | ||||
| if (ni == NULL) | if (ni == NULL) | ||||
| return ENOENT; | return ENOENT; | ||||
| } | } | ||||
| wk = &ni->ni_ucastkey; | wk = &ni->ni_ucastkey; | ||||
| } else { | } else { | ||||
| if (kid >= IEEE80211_WEP_NKID) | if (kid >= IEEE80211_MAX_NKID) | ||||
| return EINVAL; | return EINVAL; | ||||
| wk = &vap->iv_nw_keys[kid]; | wk = &vap->iv_nw_keys[kid]; | ||||
| /* | /* | ||||
| * Global slots start off w/o any assigned key index. | * Global slots start off w/o any assigned key index. | ||||
| * Force one here for consistency with IEEE80211_IOC_WEPKEY. | * Force one here for consistency with IEEE80211_IOC_WEPKEY. | ||||
| */ | */ | ||||
| if (wk->wk_keyix == IEEE80211_KEYIX_NONE) | if (wk->wk_keyix == IEEE80211_KEYIX_NONE) | ||||
| wk->wk_keyix = kid; | wk->wk_keyix = kid; | ||||
| ▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | if (vap->iv_opmode == IEEE80211_M_STA) { | ||||
| dk.idk_macaddr); | dk.idk_macaddr); | ||||
| if (ni == NULL) | if (ni == NULL) | ||||
| return ENOENT; | return ENOENT; | ||||
| } | } | ||||
| /* XXX error return */ | /* XXX error return */ | ||||
| ieee80211_node_delucastkey(ni); | ieee80211_node_delucastkey(ni); | ||||
| ieee80211_free_node(ni); | ieee80211_free_node(ni); | ||||
| } else { | } else { | ||||
| if (kid >= IEEE80211_WEP_NKID) | if (kid >= IEEE80211_MAX_NKID) | ||||
| return EINVAL; | return EINVAL; | ||||
| /* XXX error return */ | /* XXX error return */ | ||||
| ieee80211_crypto_delkey(vap, &vap->iv_nw_keys[kid]); | ieee80211_crypto_delkey(vap, &vap->iv_nw_keys[kid]); | ||||
| } | } | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| struct mlmeop { | struct mlmeop { | ||||
| ▲ Show 20 Lines • Show All 2,426 Lines • Show Last 20 Lines | |||||