static int
-madwifi_wireless_event_init(void *priv)
+madwifi_wireless_event_init(struct madwifi_driver_data *drv)
{
- struct madwifi_driver_data *drv = priv;
int s;
struct sockaddr_nl local;
static void
-madwifi_wireless_event_deinit(void *priv)
+madwifi_wireless_event_deinit(struct madwifi_driver_data *drv)
{
- struct madwifi_driver_data *drv = priv;
-
- if (drv != NULL) {
- if (drv->wext_sock < 0)
- return;
- eloop_unregister_read_sock(drv->wext_sock);
- close(drv->wext_sock);
- }
+ if (drv->wext_sock < 0)
+ return;
+ eloop_unregister_read_sock(drv->wext_sock);
+ close(drv->wext_sock);
}
madwifi_receive_probe_req(drv);
+ if (madwifi_wireless_event_init(drv))
+ goto bad;
+
return drv;
bad:
if (drv->sock_xmit != NULL)
{
struct madwifi_driver_data *drv = priv;
+ madwifi_wireless_event_deinit(drv);
(void) madwifi_set_iface_flags(drv, 0);
if (drv->ioctl_sock >= 0)
close(drv->ioctl_sock);
return madwifi_set_iface_flags(priv, 1);
}
-const struct wpa_driver_ops wpa_driver_atheros_ops = {
+const struct hapd_driver_ops wpa_driver_atheros_ops = {
.name = "atheros",
.init = madwifi_init,
.deinit = madwifi_deinit,
.get_seqnum = madwifi_get_seqnum,
.flush = madwifi_flush,
.set_generic_elem = madwifi_set_opt_ie,
- .wireless_event_init = madwifi_wireless_event_init,
- .wireless_event_deinit = madwifi_wireless_event_deinit,
.sta_set_flags = madwifi_sta_set_flags,
.read_sta_data = madwifi_read_sta_driver_data,
.send_eapol = madwifi_send_eapol,