hostapd: update packaging and patches
[openwrt/openwrt.git] / package / network / services / hostapd / patches / 360-ctrl_iface_reload.patch
index 170d4f2f0c12ad5f0cacf5263e79ac63c3542e1c..07faead2c5a8911784e26558e5888a32f316a3b6 100644 (file)
@@ -1,32 +1,25 @@
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -34,6 +34,7 @@
- #include "wps/wps.h"
+@@ -60,6 +60,7 @@
+ #include "fst/fst_ctrl_iface.h"
  #include "config_file.h"
  #include "ctrl_iface.h"
 +#include "config_file.h"
  
  
- struct wpa_ctrl_dst {
-@@ -44,6 +45,7 @@ struct wpa_ctrl_dst {
-       int errors;
};
+ #define HOSTAPD_CLI_DUP_VALUE_MAX_LEN 256
+@@ -78,6 +79,7 @@ static void hostapd_ctrl_iface_send(stru
+                                   enum wpa_msg_type type,
                                  const char *buf, size_t len);
  
 +static char *reload_opts = NULL;
  
- static void hostapd_ctrl_iface_send(struct hostapd_data *hapd, int level,
-                                   const char *buf, size_t len);
-@@ -153,6 +155,68 @@ static int hostapd_ctrl_iface_new_sta(st
+ static int hostapd_ctrl_iface_attach(struct hostapd_data *hapd,
+                                    struct sockaddr_storage *from,
+@@ -129,6 +131,61 @@ static int hostapd_ctrl_iface_new_sta(st
        return 0;
  }
  
-+static int hostapd_ctrl_iface_set_down(struct hostapd_data *hapd)
-+{
-+      if (hapd->driver->stop_ap)
-+              hapd->driver->stop_ap(hapd->drv_priv);
-+      return 0;
-+}
-+
 +static char *get_option(char *opt, char *str)
 +{
 +      int len = strlen(str);
  
  #ifdef CONFIG_IEEE80211W
  #ifdef NEED_AP_MLME
-@@ -1199,6 +1263,10 @@ static void hostapd_ctrl_iface_receive(i
-                               reply_len += res;
-               }
- #endif /* CONFIG_NO_RADIUS */
-+      } else if (os_strcmp(buf, "DOWN") == 0) {
-+              hostapd_ctrl_iface_set_down(hapd);
+@@ -3031,6 +3088,8 @@ static int hostapd_ctrl_iface_receive_pr
+       } else if (os_strncmp(buf, "VENDOR ", 7) == 0) {
+               reply_len = hostapd_ctrl_iface_vendor(hapd, buf + 7, reply,
+                                                     reply_size);
 +      } else if (os_strncmp(buf, "UPDATE ", 7) == 0) {
 +              hostapd_ctrl_iface_update(hapd, buf + 7);
-       } else if (os_strcmp(buf, "STA-FIRST") == 0) {
-               reply_len = hostapd_ctrl_iface_sta_first(hapd, reply,
-                                                        reply_size);
+       } else if (os_strcmp(buf, "ERP_FLUSH") == 0) {
+               ieee802_1x_erp_flush(hapd);
+ #ifdef RADIUS_SERVER
+--- a/src/ap/ctrl_iface_ap.c
++++ b/src/ap/ctrl_iface_ap.c
+@@ -864,7 +864,13 @@ int hostapd_parse_csa_settings(const cha
+ int hostapd_ctrl_iface_stop_ap(struct hostapd_data *hapd)
+ {
+-      return hostapd_drv_stop_ap(hapd);
++      struct hostapd_iface *iface = hapd->iface;
++      int i;
++
++      for (i = 0; i < iface->num_bss; i++)
++              hostapd_drv_stop_ap(iface->bss[i]);
++
++      return 0;
+ }