hostapd: Simplify interface initialization

Use hostapd_interface_init2() for all interfaces instead of the
previously used different paths for per-interface-config and
per-BSS-config cases. This moves the calls to hostapd_driver_init() and
hostapd_setup_interface() to happen after all configuration files have
been read.

Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2013-11-03 13:28:17 +02:00
parent e114c49cfc
commit 4a5deb9b9d
3 changed files with 0 additions and 14 deletions

View file

@ -261,27 +261,15 @@ hostapd_interface_init(struct hapd_interfaces *interfaces,
return NULL; return NULL;
} }
if (hostapd_driver_init(iface) ||
hostapd_setup_interface(iface)) {
hostapd_interface_deinit_free(iface);
return NULL;
}
iface->init_done = 1;
return iface; return iface;
} }
static int hostapd_interface_init2(struct hostapd_iface *iface) static int hostapd_interface_init2(struct hostapd_iface *iface)
{ {
if (iface->init_done)
return 0;
if (hostapd_driver_init(iface) || if (hostapd_driver_init(iface) ||
hostapd_setup_interface(iface)) hostapd_setup_interface(iface))
return -1; return -1;
iface->init_done = 1;
return 0; return 0;
} }

View file

@ -1581,7 +1581,6 @@ int hostapd_add_iface(struct hapd_interfaces *interfaces, char *buf)
interfaces->count--; interfaces->count--;
goto fail; goto fail;
} }
hapd_iface->init_done = 1;
} else { } else {
/* Assign new BSS with bss[0]'s driver info */ /* Assign new BSS with bss[0]'s driver info */
hapd = hapd_iface->bss[hapd_iface->num_bss - 1]; hapd = hapd_iface->bss[hapd_iface->num_bss - 1];

View file

@ -250,7 +250,6 @@ struct hostapd_iface {
char *config_fname; char *config_fname;
struct hostapd_config *conf; struct hostapd_config *conf;
char phy[16]; /* Name of the PHY (radio) */ char phy[16]; /* Name of the PHY (radio) */
int init_done;
size_t num_bss; size_t num_bss;
struct hostapd_data **bss; struct hostapd_data **bss;