static void * wpa_driver_ipw_init(void *ctx, const char *ifname) { struct wpa_driver_ipw_data *drv; int ver; wpa_printf(MSG_DEBUG, "%s is called", __FUNCTION__); drv = os_zalloc(sizeof(*drv)); if (drv == NULL) return NULL; drv->wext = wpa_driver_wext_init(ctx, ifname); if (drv->wext == NULL) { os_free(drv); return NULL; } ver = wpa_driver_wext_get_version(drv->wext); if (ver >= 18) { wpa_printf(MSG_WARNING, "Linux wireless extensions version %d " "detected.", ver); wpa_printf(MSG_WARNING, "ipw2x00 driver uses driver_wext " "(-Dwext) instead of driver_ipw."); } drv->ctx = ctx; os_strncpy(drv->ifname, ifname, sizeof(drv->ifname)); drv->sock = socket(PF_INET, SOCK_DGRAM, 0); if (drv->sock < 0) { wpa_driver_wext_deinit(drv->wext); os_free(drv); return NULL; } return drv; }
int wpa_driver_awext_get_version(struct wpa_driver_awext_data *drv) { return wpa_driver_wext_get_version(drv->wext); }