Ticket #203: imr-kickmac-patch-r2.diff
| File imr-kickmac-patch-r2.diff, 2.4 kB (added by imr1@waikato.ac.nz, 6 years ago) |
|---|
-
net80211/ieee80211_ioctl.h
old new 521 521 #define IEEE80211_IOCTL_DELMAC (SIOCIWFIRSTPRIV+24) 522 522 #define IEEE80211_IOCTL_WDSADDMAC (SIOCIWFIRSTPRIV+26) 523 523 #define IEEE80211_IOCTL_WDSDELMAC (SIOCIWFIRSTPRIV+28) 524 #define IEEE80211_IOCTL_KICKMAC (SIOCIWFIRSTPRIV+30) 524 525 enum { 525 526 IEEE80211_WMMPARAMS_CWMIN = 1, 526 527 IEEE80211_WMMPARAMS_CWMAX = 2, -
net80211/ieee80211_wireless.c
old new 2876 2876 return -1; 2877 2877 } 2878 2878 2879 /* ioctl to kick the associated station with the given mac address. 2880 * Invoked via iwpriv <interface> kickmac <MAC to kick> 2881 */ 2879 2882 static int 2883 ieee80211_ioctl_kickmac(struct net_device *dev, struct iw_request_info *info, 2884 void *w, char *extra) 2885 { 2886 struct sockaddr *sa = (struct sockaddr *)extra; 2887 struct ieee80211req_mlme mlme; 2888 2889 if(sa->sa_family != ARPHRD_ETHER) return -EINVAL; 2890 2891 /* Setup a mlme request to disassociate with the given MAC */ 2892 mlme.im_op = IEEE80211_MLME_DISASSOC; 2893 mlme.im_reason = IEEE80211_REASON_UNSPECIFIED; 2894 IEEE80211_ADDR_COPY(&(mlme.im_macaddr), sa->sa_data); 2895 2896 /* Send off the mlme request and return the result. */ 2897 return ieee80211_ioctl_setmlme(dev, info, w,(char *)&mlme); 2898 } 2899 2900 static int 2880 2901 ieee80211_ioctl_addmac(struct net_device *dev, struct iw_request_info *info, 2881 2902 void *w, char *extra) 2882 2903 { … … 3504 3525 IW_PRIV_TYPE_ADDR | IW_PRIV_SIZE_FIXED | 1, 0,"addmac" }, 3505 3526 { IEEE80211_IOCTL_DELMAC, 3506 3527 IW_PRIV_TYPE_ADDR | IW_PRIV_SIZE_FIXED | 1, 0,"delmac" }, 3528 { IEEE80211_IOCTL_KICKMAC, 3529 IW_PRIV_TYPE_ADDR | IW_PRIV_SIZE_FIXED | 1, 0, "kickmac"}, 3507 3530 { IEEE80211_IOCTL_WDSADDMAC, 3508 3531 IW_PRIV_TYPE_ADDR | IW_PRIV_SIZE_FIXED | 1, 0,"wds_add" }, 3509 3532 { IEEE80211_IOCTL_WDSDELMAC, … … 3895 3918 (iw_handler) NULL, /* SIOCIWFIRSTPRIV+27 */ 3896 3919 (iw_handler) ieee80211_ioctl_wdsdelmac, /* SIOCIWFIRSTPRIV+28 */ 3897 3920 (iw_handler) NULL, /* SIOCIWFIRSTPRIV+29 */ 3921 (iw_handler) ieee80211_ioctl_kickmac, /* SIOCIWFIRSTPRIV+30 */ 3922 (iw_handler) NULL, /* SIOCIWFIRSTPRIV+31 */ 3898 3923 }; 3899 3924 static struct iw_handler_def ieee80211_iw_handler_def = { 3900 3925 #define N(a) (sizeof (a) / sizeof (a[0]))
