hostapd: update to 20120326
[openwrt.git] / package / hostapd / patches / 552-ctrl_iface_reload.patch
diff --git a/package/hostapd/patches/552-ctrl_iface_reload.patch b/package/hostapd/patches/552-ctrl_iface_reload.patch
deleted file mode 100644 (file)
index cf65f76..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
---- a/hostapd/ctrl_iface.c
-+++ b/hostapd/ctrl_iface.c
-@@ -38,6 +38,7 @@
- #include "wps/wps_defs.h"
- #include "wps/wps.h"
- #include "ctrl_iface.h"
-+#include "config_file.h"
- struct wpa_ctrl_dst {
-@@ -48,6 +49,7 @@ struct wpa_ctrl_dst {
-       int errors;
- };
-+static char *reload_opts = NULL;
- static void hostapd_ctrl_iface_send(struct hostapd_data *hapd, int level,
-                                   const char *buf, size_t len);
-@@ -318,6 +320,66 @@ static int hostapd_ctrl_iface_disassocia
-       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);
-+
-+      if (!strncmp(opt, str, len))
-+              return opt + len;
-+      else
-+              return NULL;
-+}
-+
-+static struct hostapd_config *hostapd_ctrl_iface_config_read(const char *fname)
-+{
-+      struct hostapd_config *conf;
-+      char *opt, *val;
-+
-+      conf = hostapd_config_read(fname);
-+      if (!conf)
-+              return NULL;
-+
-+      for (opt = strtok(reload_opts, " ");
-+           opt;
-+               opt = strtok(NULL, " ")) {
-+
-+              if ((val = get_option(opt, "channel=")))
-+                      conf->channel = atoi(val);
-+              else if ((val = get_option(opt, "ht_capab=")))
-+                      conf->ht_capab = atoi(val);
-+              else if ((val = get_option(opt, "ht_capab_mask=")))
-+                      conf->ht_capab &= atoi(val);
-+              else if ((val = get_option(opt, "sec_chan=")))
-+                      conf->secondary_channel = atoi(val);
-+              else if ((val = get_option(opt, "hwmode=")))
-+                      conf->hw_mode = atoi(val);
-+              else if ((val = get_option(opt, "ieee80211n=")))
-+                      conf->ieee80211n = atoi(val);
-+              else
-+                      break;
-+      }
-+
-+      return conf;
-+}
-+
-+static int hostapd_ctrl_iface_reload(struct hostapd_data *hapd, char *txt)
-+{
-+      struct hostapd_iface *iface = hapd->iface;
-+
-+      iface->config_read_cb = hostapd_ctrl_iface_config_read;
-+      reload_opts = txt;
-+
-+      hostapd_reload_config(iface);
-+
-+      iface->config_read_cb = hostapd_config_read;
-+}
- #ifdef CONFIG_IEEE80211W
- #ifdef NEED_AP_MLME
-@@ -814,6 +876,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);
-+      } else if (os_strncmp(buf, "RELOAD ", 7) == 0) {
-+              hostapd_ctrl_iface_reload(hapd, buf + 7);
-       } else if (os_strcmp(buf, "STA-FIRST") == 0) {
-               reply_len = hostapd_ctrl_iface_sta_first(hapd, reply,
-                                                        reply_size);
This page took 0.022935 seconds and 4 git commands to generate.