diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-20 18:26:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-20 18:26:25 -0400 |
commit | f4ffaa452e71495a06376f12f772342bc57051fc (patch) | |
tree | c502a9ebd25cd4541241dd384803163703a71946 /net/ieee80211/softmac/ieee80211softmac_event.c | |
parent | d3d3cf05eda861d807de539cac25bcefee0f9659 (diff) | |
parent | f18b95c3e2ab0f75b23a5aabab0bc8f99bd6bbf3 (diff) |
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (21 commits)
[PATCH] wext: Fix RtNetlink ENCODE security permissions
[PATCH] bcm43xx: iw_priv_args names should be <16 characters
[PATCH] bcm43xx: sysfs code cleanup
[PATCH] bcm43xx: fix pctl slowclock limit calculation
[PATCH] bcm43xx: fix dyn tssi2dbm memleak
[PATCH] bcm43xx: fix config menu alignment
[PATCH] bcm43xx wireless: fix printk format warnings
[PATCH] softmac: report when scanning has finished
[PATCH] softmac: fix event sending
[PATCH] softmac: handle iw_mode properly
[PATCH] softmac: dont send out packets while scanning
[PATCH] softmac: return -EAGAIN from getscan while scanning
[PATCH] bcm43xx: set trans_start on TX to prevent bogus timeouts
[PATCH] orinoco: fix truncating commsquality RID with the latest Symbol firmware
[PATCH] softmac: fix spinlock recursion on reassoc
[PATCH] Revert NET_RADIO Kconfig title change
[PATCH] wext: Fix IWENCODEEXT security permissions
[PATCH] wireless/atmel: send WEXT scan completion events
[PATCH] wireless/airo: clean up WEXT association and scan events
[PATCH] softmac uses Wiress Ext.
...
Diffstat (limited to 'net/ieee80211/softmac/ieee80211softmac_event.c')
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_event.c | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/net/ieee80211/softmac/ieee80211softmac_event.c b/net/ieee80211/softmac/ieee80211softmac_event.c index 0a52bbda1e4c..8cc8f3f0f8e7 100644 --- a/net/ieee80211/softmac/ieee80211softmac_event.c +++ b/net/ieee80211/softmac/ieee80211softmac_event.c | |||
@@ -67,6 +67,7 @@ static char *event_descriptions[IEEE80211SOFTMAC_EVENT_LAST+1] = { | |||
67 | "authenticating failed", | 67 | "authenticating failed", |
68 | "authenticating timed out", | 68 | "authenticating timed out", |
69 | "associating failed because no suitable network was found", | 69 | "associating failed because no suitable network was found", |
70 | "disassociated", | ||
70 | }; | 71 | }; |
71 | 72 | ||
72 | 73 | ||
@@ -128,13 +129,42 @@ void | |||
128 | ieee80211softmac_call_events_locked(struct ieee80211softmac_device *mac, int event, void *event_ctx) | 129 | ieee80211softmac_call_events_locked(struct ieee80211softmac_device *mac, int event, void *event_ctx) |
129 | { | 130 | { |
130 | struct ieee80211softmac_event *eventptr, *tmp; | 131 | struct ieee80211softmac_event *eventptr, *tmp; |
131 | union iwreq_data wrqu; | 132 | struct ieee80211softmac_network *network; |
132 | char *msg; | ||
133 | 133 | ||
134 | if (event >= 0) { | 134 | if (event >= 0) { |
135 | msg = event_descriptions[event]; | 135 | union iwreq_data wrqu; |
136 | wrqu.data.length = strlen(msg); | 136 | int we_event; |
137 | wireless_send_event(mac->dev, IWEVCUSTOM, &wrqu, msg); | 137 | char *msg = NULL; |
138 | |||
139 | switch(event) { | ||
140 | case IEEE80211SOFTMAC_EVENT_ASSOCIATED: | ||
141 | network = (struct ieee80211softmac_network *)event_ctx; | ||
142 | wrqu.data.length = 0; | ||
143 | wrqu.data.flags = 0; | ||
144 | memcpy(wrqu.ap_addr.sa_data, &network->bssid[0], ETH_ALEN); | ||
145 | wrqu.ap_addr.sa_family = ARPHRD_ETHER; | ||
146 | we_event = SIOCGIWAP; | ||
147 | break; | ||
148 | case IEEE80211SOFTMAC_EVENT_DISASSOCIATED: | ||
149 | wrqu.data.length = 0; | ||
150 | wrqu.data.flags = 0; | ||
151 | memset(&wrqu, '\0', sizeof (union iwreq_data)); | ||
152 | wrqu.ap_addr.sa_family = ARPHRD_ETHER; | ||
153 | we_event = SIOCGIWAP; | ||
154 | break; | ||
155 | case IEEE80211SOFTMAC_EVENT_SCAN_FINISHED: | ||
156 | wrqu.data.length = 0; | ||
157 | wrqu.data.flags = 0; | ||
158 | memset(&wrqu, '\0', sizeof (union iwreq_data)); | ||
159 | we_event = SIOCGIWSCAN; | ||
160 | break; | ||
161 | default: | ||
162 | msg = event_descriptions[event]; | ||
163 | wrqu.data.length = strlen(msg); | ||
164 | we_event = IWEVCUSTOM; | ||
165 | break; | ||
166 | } | ||
167 | wireless_send_event(mac->dev, we_event, &wrqu, msg); | ||
138 | } | 168 | } |
139 | 169 | ||
140 | if (!list_empty(&mac->events)) | 170 | if (!list_empty(&mac->events)) |