Lines Matching refs:drv

35 static int hostapd_ioctl(struct wpa_driver_hostap_data *drv,
42 os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
46 if (ioctl(drv->sock, PRISM2_IOCTL_HOSTAPD, &iwr) < 0) {
57 static int wpa_driver_hostap_set_wpa_ie(struct wpa_driver_hostap_data *drv,
73 res = hostapd_ioctl(drv, param, blen, 1);
81 static int prism2param(struct wpa_driver_hostap_data *drv, int param,
88 os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
93 if (ioctl(drv->sock, PRISM2_IOCTL_PRISM2_PARAM, &iwr) < 0) {
103 struct wpa_driver_hostap_data *drv = priv;
108 if (!enabled && wpa_driver_hostap_set_wpa_ie(drv, NULL, 0) < 0)
110 if (prism2param(drv, PRISM2_PARAM_HOST_ROAMING, enabled ? 2 : 0) < 0)
112 if (prism2param(drv, PRISM2_PARAM_WPA, enabled) < 0)
155 struct wpa_driver_hostap_data *drv = priv;
216 if (hostapd_ioctl(drv, param, blen, 1)) {
229 struct wpa_driver_hostap_data *drv = priv;
231 return prism2param(drv, PRISM2_PARAM_TKIP_COUNTERMEASURES, enabled);
237 struct wpa_driver_hostap_data *drv = priv;
239 return prism2param(drv, PRISM2_PARAM_DROP_UNENCRYPTED, enabled);
243 static int wpa_driver_hostap_reset(struct wpa_driver_hostap_data *drv,
252 os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
256 if (ioctl(drv->sock, PRISM2_IOCTL_RESET, &iwr) < 0) {
264 static int wpa_driver_hostap_mlme(struct wpa_driver_hostap_data *drv,
279 ret = hostapd_ioctl(drv, &param, sizeof(param), 1);
282 ret = wpa_driver_hostap_reset(drv, 2);
291 struct wpa_driver_hostap_data *drv = priv;
293 return wpa_driver_hostap_mlme(drv, addr, MLME_STA_DEAUTH,
301 struct wpa_driver_hostap_data *drv = priv;
303 return wpa_driver_hostap_mlme(drv, addr, MLME_STA_DISASSOC,
312 struct wpa_driver_hostap_data *drv = priv;
318 if (params->mode != drv->current_mode) {
321 if (prism2param(drv, PRISM2_PARAM_HOST_ROAMING,
327 drv->current_mode = params->mode;
330 if (prism2param(drv, PRISM2_PARAM_PRIVACY_INVOKED,
333 if (wpa_driver_hostap_set_wpa_ie(drv, params->wpa_ie,
336 if (wpa_driver_wext_set_mode(drv->wext, params->mode) < 0)
339 wpa_driver_wext_set_freq(drv->wext, params->freq) < 0)
341 if (wpa_driver_wext_set_ssid(drv->wext, params->ssid, params->ssid_len)
344 if (wpa_driver_wext_set_bssid(drv->wext, params->bssid) < 0)
356 if (prism2param(drv, PRISM2_PARAM_IEEE_802_1X,
370 struct wpa_driver_hostap_data *drv = priv;
379 return wpa_driver_wext_scan(drv->wext, ssid, ssid_len);
389 ret = hostapd_ioctl(drv, &param, sizeof(param), 1);
393 eloop_cancel_timeout(wpa_driver_wext_scan_timeout, drv->wext,
394 drv->ctx);
395 eloop_register_timeout(3, 0, wpa_driver_wext_scan_timeout, drv->wext,
396 drv->ctx);
404 struct wpa_driver_hostap_data *drv = priv;
416 return prism2param(drv, PRISM2_PARAM_AP_AUTH_ALGS, algs);
422 struct wpa_driver_hostap_data *drv = priv;
423 return wpa_driver_wext_get_bssid(drv->wext, bssid);
429 struct wpa_driver_hostap_data *drv = priv;
430 return wpa_driver_wext_get_ssid(drv->wext, ssid);
436 struct wpa_driver_hostap_data *drv = priv;
437 return wpa_driver_wext_get_scan_results(drv->wext);
443 struct wpa_driver_hostap_data *drv = priv;
444 return wpa_driver_wext_set_operstate(drv->wext, state);
450 struct wpa_driver_hostap_data *drv;
452 drv = os_zalloc(sizeof(*drv));
453 if (drv == NULL)
455 drv->wext = wpa_driver_wext_init(ctx, ifname);
456 if (drv->wext == NULL) {
457 os_free(drv);
461 drv->ctx = ctx;
462 os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname));
463 drv->sock = socket(PF_INET, SOCK_DGRAM, 0);
464 if (drv->sock < 0) {
466 wpa_driver_wext_deinit(drv->wext);
467 os_free(drv);
479 wpa_driver_wext_alternative_ifindex(drv->wext, ifname2);
482 return drv;
488 struct wpa_driver_hostap_data *drv = priv;
489 wpa_driver_wext_deinit(drv->wext);
490 close(drv->sock);
491 os_free(drv);