1 commit 74b1c84a0b1218a33ce7089e11172e7f39273158
2 Author: Samuel Ortiz <sameo@linux.intel.com>
3 Date: Tue Nov 9 16:45:27 2010 +0200
5 wpa_supplicant: Test all compiled drivers before failing
7 wpa_supplicant_set_driver() is returning an error if the first driver
8 in the driver list is not built in. It should continue through the
9 driver list until it finds one that's built in.
11 diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
12 index ff1cfd3..0a603af 100644
13 --- a/wpa_supplicant/wpa_supplicant.c
14 +++ b/wpa_supplicant/wpa_supplicant.c
15 @@ -1702,7 +1702,7 @@ static int wpa_supplicant_set_driver(struct wpa_supplicant *wpa_s,
20 + const char *pos, *driver = name;
24 @@ -1720,20 +1720,26 @@ static int wpa_supplicant_set_driver(struct wpa_supplicant *wpa_s,
28 - pos = os_strchr(name, ',');
32 - len = os_strlen(name);
33 - for (i = 0; wpa_drivers[i]; i++) {
34 - if (os_strlen(wpa_drivers[i]->name) == len &&
35 - os_strncmp(name, wpa_drivers[i]->name, len) ==
37 - wpa_s->driver = wpa_drivers[i];
38 - wpa_s->global_drv_priv = wpa_s->global->drv_priv[i];
41 + pos = os_strchr(driver, ',');
45 + len = os_strlen(driver);
47 + for (i = 0; wpa_drivers[i]; i++) {
48 + if (os_strlen(wpa_drivers[i]->name) == len &&
49 + os_strncmp(driver, wpa_drivers[i]->name, len) ==
51 + wpa_s->driver = wpa_drivers[i];
52 + wpa_s->global_drv_priv =
53 + wpa_s->global->drv_priv[i];
62 wpa_printf(MSG_ERROR, "Unsupported driver '%s'.", name);