Add return value to ACL functions

While these do not return error code within the current hostapd
implementation, matching functions in wpa_supplicant AP functionality
will have an error case and using consistent return type will make the
control interface code more consistent.

In addition, export hostapd_set_acl() in preparation for the
wpa_supplicant control interface implementation extension.

Signed-off-by: Chaoli Zhou <quic_zchaoli@quicinc.com>
This commit is contained in:
Chaoli Zhou 2022-03-24 15:19:25 +08:00 committed by Jouni Malinen
parent f5ac428116
commit fd0d738ff4
4 changed files with 17 additions and 10 deletions

View file

@ -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 sta_info *sta;
struct vlan_description vlan_id; struct vlan_description vlan_id;
if (hapd->conf->macaddr_acl != DENY_UNLESS_ACCEPTED) if (hapd->conf->macaddr_acl != DENY_UNLESS_ACCEPTED)
return; return 0;
for (sta = hapd->sta_list; sta; sta = sta->next) { for (sta = hapd->sta_list; sta; sta = sta->next) {
if (!hostapd_maclist_found(hapd->conf->accept_mac, 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, ap_sta_disconnect(hapd, sta, sta->addr,
WLAN_REASON_UNSPECIFIED); 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 sta_info *sta;
struct vlan_description vlan_id; 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, ap_sta_disconnect(hapd, sta, sta->addr,
WLAN_REASON_UNSPECIFIED); WLAN_REASON_UNSPECIFIED);
} }
return 0;
} }

View file

@ -51,7 +51,7 @@ void hostapd_ctrl_iface_acl_clear_list(struct mac_acl_entry **acl,
int *num); int *num);
int hostapd_ctrl_iface_acl_show_mac(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); char *buf, size_t buflen);
void hostapd_disassoc_accept_mac(struct hostapd_data *hapd); int hostapd_disassoc_accept_mac(struct hostapd_data *hapd);
void hostapd_disassoc_deny_mac(struct hostapd_data *hapd); int hostapd_disassoc_deny_mac(struct hostapd_data *hapd);
#endif /* CTRL_IFACE_AP_H */ #endif /* CTRL_IFACE_AP_H */

View file

@ -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; struct hostapd_config *conf = hapd->iconf;
int err; int err = 0;
u8 accept_acl; u8 accept_acl;
if (hapd->iface->drv_max_acl_mac_addrs == 0) if (hapd->iface->drv_max_acl_mac_addrs == 0)
return; return 0;
if (conf->bss[0]->macaddr_acl == DENY_UNLESS_ACCEPTED) { if (conf->bss[0]->macaddr_acl == DENY_UNLESS_ACCEPTED) {
accept_acl = 1; accept_acl = 1;
@ -1474,7 +1474,7 @@ static void hostapd_set_acl(struct hostapd_data *hapd)
accept_acl); accept_acl);
if (err) { if (err) {
wpa_printf(MSG_DEBUG, "Failed to set accept acl"); wpa_printf(MSG_DEBUG, "Failed to set accept acl");
return; return -1;
} }
} else if (conf->bss[0]->macaddr_acl == ACCEPT_UNLESS_DENIED) { } else if (conf->bss[0]->macaddr_acl == ACCEPT_UNLESS_DENIED) {
accept_acl = 0; accept_acl = 0;
@ -1483,9 +1483,10 @@ static void hostapd_set_acl(struct hostapd_data *hapd)
accept_acl); accept_acl);
if (err) { if (err) {
wpa_printf(MSG_DEBUG, "Failed to set deny acl"); wpa_printf(MSG_DEBUG, "Failed to set deny acl");
return; return -1;
} }
} }
return err;
} }

View file

@ -709,4 +709,6 @@ void fst_hostapd_fill_iface_obj(struct hostapd_data *hapd,
struct fst_wpa_obj *iface_obj); struct fst_wpa_obj *iface_obj);
#endif /* CONFIG_FST */ #endif /* CONFIG_FST */
int hostapd_set_acl(struct hostapd_data *hapd);
#endif /* HOSTAPD_H */ #endif /* HOSTAPD_H */