Deleted Added
full compact
33c33
< __FBSDID("$FreeBSD: head/sys/net80211/ieee80211_acl.c 139530 2004-12-31 22:42:38Z sam $");
---
> __FBSDID("$FreeBSD: head/sys/net80211/ieee80211_acl.c 149028 2005-08-13 17:31:48Z sam $");
77a78
> int as_nacls;
97c98
< M_DEVBUF, M_NOWAIT | M_ZERO);
---
> M_80211_ACL, M_NOWAIT | M_ZERO);
140a142
> as->as_nacls--;
188a191
> as->as_nacls++;
262a266,312
> static int
> acl_setioctl(struct ieee80211com *ic, struct ieee80211req *ireq)
> {
>
> return EINVAL;
> }
>
> static int
> acl_getioctl(struct ieee80211com *ic, struct ieee80211req *ireq)
> {
> struct aclstate *as = ic->ic_as;
> struct acl *acl;
> struct ieee80211req_maclist *ap;
> int error, space, i;
>
> switch (ireq->i_val) {
> case IEEE80211_MACCMD_POLICY:
> ireq->i_val = as->as_policy;
> return 0;
> case IEEE80211_MACCMD_LIST:
> space = as->as_nacls * IEEE80211_ADDR_LEN;
> if (ireq->i_len == 0) {
> ireq->i_len = space; /* return required space */
> return 0; /* NB: must not error */
> }
> MALLOC(ap, struct ieee80211req_maclist *, space,
> M_TEMP, M_NOWAIT);
> if (ap == NULL)
> return ENOMEM;
> i = 0;
> ACL_LOCK(as);
> TAILQ_FOREACH(acl, &as->as_list, acl_list) {
> IEEE80211_ADDR_COPY(ap[i].ml_macaddr, acl->acl_macaddr);
> i++;
> }
> ACL_UNLOCK(as);
> if (ireq->i_len >= space) {
> error = copyout(ap, ireq->i_data, space);
> ireq->i_len = space;
> } else
> error = copyout(ap, ireq->i_data, ireq->i_len);
> FREE(ap, M_TEMP);
> return error;
> }
> return EINVAL;
> }
>
272a323,324
> .iac_setioctl = acl_setioctl,
> .iac_getioctl = acl_getioctl,