From fd0d738ff4bc4770522c6c348347f834d2b48e16 Mon Sep 17 00:00:00 2001 From: Chaoli Zhou Date: Thu, 24 Mar 2022 15:19:25 +0800 Subject: [PATCH] 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 --- src/ap/ctrl_iface_ap.c | 10 +++++++--- src/ap/ctrl_iface_ap.h | 4 ++-- src/ap/hostapd.c | 11 ++++++----- src/ap/hostapd.h | 2 ++ 4 files changed, 17 insertions(+), 10 deletions(-) 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 */