示例#1
0
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;
}
示例#2
0
int wpa_driver_awext_get_version(struct wpa_driver_awext_data *drv)
{
	return wpa_driver_wext_get_version(drv->wext);
}