Need to provide the private driver context, not the wpa_supplicant
global context, in init2() call.
const char *ifname)
{
if (wpa_s->driver->init2)
- return wpa_s->driver->init2(wpa_s, ifname, wpa_s->global);
+ return wpa_s->driver->init2(wpa_s, ifname,
+ wpa_s->global_drv_priv);
if (wpa_s->driver->init) {
return wpa_s->driver->init(wpa_s, ifname);
}
if (name == NULL) {
/* default to first driver in the list */
wpa_s->driver = wpa_drivers[0];
+ wpa_s->global_drv_priv = wpa_s->global->drv_priv[0];
return 0;
}
os_strncmp(name, wpa_drivers[i]->name, len) ==
0) {
wpa_s->driver = wpa_drivers[i];
+ wpa_s->global_drv_priv = wpa_s->global->drv_priv[i];
return 0;
}
}
int mgmt_group_cipher;
void *drv_priv; /* private data used by driver_ops */
+ void *global_drv_priv;
struct wpa_ssid *prev_scan_ssid; /* previously scanned SSID;
* NULL = not yet initialized (start