|
@@ -41,7 +41,7 @@
|
|
|
HAPD_IFACE_DISABLED,
|
|
|
--- /dev/null
|
|
|
+++ b/src/ap/ubus.c
|
|
|
-@@ -0,0 +1,494 @@
|
|
|
+@@ -0,0 +1,511 @@
|
|
|
+/*
|
|
|
+ * hostapd / ubus support
|
|
|
+ * Copyright (c) 2013, Felix Fietkau <[email protected]>
|
|
@@ -343,6 +343,22 @@
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
++static int
|
|
|
++hostapd_bss_update_beacon(struct ubus_context *ctx, struct ubus_object *obj,
|
|
|
++ struct ubus_request_data *req, const char *method,
|
|
|
++ struct blob_attr *msg)
|
|
|
++{
|
|
|
++ int rc;
|
|
|
++ struct hostapd_data *hapd = container_of(obj, struct hostapd_data, ubus.obj);
|
|
|
++
|
|
|
++ rc = ieee802_11_set_beacon(hapd);
|
|
|
++
|
|
|
++ if (rc != 0)
|
|
|
++ return UBUS_STATUS_NOT_SUPPORTED;
|
|
|
++
|
|
|
++ return 0;
|
|
|
++}
|
|
|
++
|
|
|
+enum {
|
|
|
+ CSA_FREQ,
|
|
|
+ CSA_BCN_COUNT,
|
|
@@ -425,6 +441,7 @@
|
|
|
+ UBUS_METHOD_NOARG("list_bans", hostapd_bss_list_bans),
|
|
|
+ UBUS_METHOD_NOARG("wps_start", hostapd_bss_wps_start),
|
|
|
+ UBUS_METHOD_NOARG("wps_cancel", hostapd_bss_wps_cancel),
|
|
|
++ UBUS_METHOD_NOARG("update_beacon", hostapd_bss_update_beacon),
|
|
|
+#ifdef NEED_AP_MLME
|
|
|
+ UBUS_METHOD("switch_chan", hostapd_switch_chan, csa_policy),
|
|
|
+#endif
|
|
@@ -733,7 +750,7 @@
|
|
|
sta->capability = capab_info;
|
|
|
sta->listen_interval = listen_interval;
|
|
|
|
|
|
-@@ -2236,7 +2262,7 @@ int ieee802_11_mgmt(struct hostapd_data
|
|
|
+@@ -2236,7 +2262,7 @@ int ieee802_11_mgmt(struct hostapd_data
|
|
|
|
|
|
|
|
|
if (stype == WLAN_FC_STYPE_PROBE_REQ) {
|
|
@@ -742,7 +759,7 @@
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-@@ -2251,17 +2277,17 @@ int ieee802_11_mgmt(struct hostapd_data
|
|
|
+@@ -2251,17 +2277,17 @@ int ieee802_11_mgmt(struct hostapd_data
|
|
|
switch (stype) {
|
|
|
case WLAN_FC_STYPE_AUTH:
|
|
|
wpa_printf(MSG_DEBUG, "mgmt::auth");
|