diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c index 6af941058..1bc1b0b3b 100644 --- a/src/ap/ctrl_iface_ap.c +++ b/src/ap/ctrl_iface_ap.c @@ -1357,13 +1357,13 @@ int hostapd_ctrl_iface_acl_add_mac(struct mac_acl_entry **acl, int *num, } -void hostapd_disassoc_accept_mac(struct hostapd_data *hapd) +int hostapd_disassoc_accept_mac(struct hostapd_data *hapd) { struct sta_info *sta; struct vlan_description vlan_id; if (hapd->conf->macaddr_acl != DENY_UNLESS_ACCEPTED) - return; + return 0; for (sta = hapd->sta_list; sta; sta = sta->next) { if (!hostapd_maclist_found(hapd->conf->accept_mac, @@ -1374,10 +1374,12 @@ void hostapd_disassoc_accept_mac(struct hostapd_data *hapd) ap_sta_disconnect(hapd, sta, sta->addr, WLAN_REASON_UNSPECIFIED); } + + return 0; } -void hostapd_disassoc_deny_mac(struct hostapd_data *hapd) +int hostapd_disassoc_deny_mac(struct hostapd_data *hapd) { struct sta_info *sta; struct vlan_description vlan_id; @@ -1391,4 +1393,6 @@ void hostapd_disassoc_deny_mac(struct hostapd_data *hapd) ap_sta_disconnect(hapd, sta, sta->addr, WLAN_REASON_UNSPECIFIED); } + + return 0; } diff --git a/src/ap/ctrl_iface_ap.h b/src/ap/ctrl_iface_ap.h index ac2e26d01..614f0426c 100644 --- a/src/ap/ctrl_iface_ap.h +++ b/src/ap/ctrl_iface_ap.h @@ -51,7 +51,7 @@ void hostapd_ctrl_iface_acl_clear_list(struct mac_acl_entry **acl, int *num); int hostapd_ctrl_iface_acl_show_mac(struct mac_acl_entry *acl, int num, char *buf, size_t buflen); -void hostapd_disassoc_accept_mac(struct hostapd_data *hapd); -void hostapd_disassoc_deny_mac(struct hostapd_data *hapd); +int hostapd_disassoc_accept_mac(struct hostapd_data *hapd); +int hostapd_disassoc_deny_mac(struct hostapd_data *hapd); #endif /* CTRL_IFACE_AP_H */ diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c index 4b88641a2..81488a2ef 100644 --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c @@ -1458,14 +1458,14 @@ static int hostapd_set_acl_list(struct hostapd_data *hapd, } -static void hostapd_set_acl(struct hostapd_data *hapd) +int hostapd_set_acl(struct hostapd_data *hapd) { struct hostapd_config *conf = hapd->iconf; - int err; + int err = 0; u8 accept_acl; if (hapd->iface->drv_max_acl_mac_addrs == 0) - return; + return 0; if (conf->bss[0]->macaddr_acl == DENY_UNLESS_ACCEPTED) { accept_acl = 1; @@ -1474,7 +1474,7 @@ static void hostapd_set_acl(struct hostapd_data *hapd) accept_acl); if (err) { wpa_printf(MSG_DEBUG, "Failed to set accept acl"); - return; + return -1; } } else if (conf->bss[0]->macaddr_acl == ACCEPT_UNLESS_DENIED) { accept_acl = 0; @@ -1483,9 +1483,10 @@ static void hostapd_set_acl(struct hostapd_data *hapd) accept_acl); if (err) { wpa_printf(MSG_DEBUG, "Failed to set deny acl"); - return; + return -1; } } + return err; } diff --git a/src/ap/hostapd.h b/src/ap/hostapd.h index b30aa2ff6..6c8723baf 100644 --- a/src/ap/hostapd.h +++ b/src/ap/hostapd.h @@ -709,4 +709,6 @@ void fst_hostapd_fill_iface_obj(struct hostapd_data *hapd, struct fst_wpa_obj *iface_obj); #endif /* CONFIG_FST */ +int hostapd_set_acl(struct hostapd_data *hapd); + #endif /* HOSTAPD_H */