eap: remove mtu argument from eap_init

This was refactored to set the mtu via __eap_set_config rather than
passing the MTU into eap_init. This makes eap work in a similar fashion
as eapol (i.e. __eapol_set_config).

If __eap_set_config is not used, the MTU will be set to 1020, which is
the same as previously passing 0 to eap_init.
This commit is contained in:
James Prestwood 2019-10-11 12:29:30 -07:00 committed by Denis Kenzior
parent d53dcf2334
commit 8f600ee1b5
3 changed files with 13 additions and 10 deletions

View File

@ -676,6 +676,12 @@ int eap_unregister_method(struct eap_method *method)
return -ENOENT;
}
void __eap_set_config(struct l_settings *config)
{
if (!l_settings_get_uint(config, "EAP", "mtu", &default_mtu))
default_mtu = 1400; /* on WiFi the real MTU is around 2304 */
}
static void __eap_method_enable(struct eap_method_desc *start,
struct eap_method_desc *stop)
{
@ -715,7 +721,7 @@ static void __eap_method_disable(struct eap_method_desc *start,
extern struct eap_method_desc __start___eap[];
extern struct eap_method_desc __stop___eap[];
void eap_init(uint32_t mtu)
void eap_init(void)
{
eap_methods = l_queue_new();
__eap_method_enable(__start___eap, __stop___eap);
@ -725,10 +731,8 @@ void eap_init(uint32_t mtu)
* EAP is capable of functioning on lower layers that
* provide an EAP MTU size of 1020 octets or greater.
*/
if (mtu == 0)
if (default_mtu == 0)
default_mtu = 1020;
else
default_mtu = mtu;
}
void eap_exit(void)

View File

@ -93,5 +93,7 @@ const char *eap_get_identity(struct eap_state *eap);
void eap_rx_packet(struct eap_state *eap, const uint8_t *pkt, size_t len);
void eap_init(uint32_t default_mtu);
void __eap_set_config(struct l_settings *config);
void eap_init(void);
void eap_exit(void);

View File

@ -367,7 +367,6 @@ int main(int argc, char *argv[])
struct l_dbus *dbus;
const char *config_dir;
char **config_dirs;
uint32_t eap_mtu;
int i;
for (;;) {
@ -465,9 +464,7 @@ int main(int argc, char *argv[])
l_strv_free(config_dirs);
__eapol_set_config(iwd_config);
if (!l_settings_get_uint(iwd_config, "EAP", "mtu", &eap_mtu))
eap_mtu = 1400; /* on WiFi the real MTU is around 2304 */
__eap_set_config(iwd_config);
exit_status = EXIT_FAILURE;
@ -496,7 +493,7 @@ int main(int argc, char *argv[])
l_dbus_set_disconnect_handler(dbus, dbus_disconnected, NULL, NULL);
dbus_init(dbus);
eap_init(eap_mtu);
eap_init();
exit_status = l_main_run_with_signal(signal_handler, NULL);
plugin_exit();