[backfire] backport r24041
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 27 Nov 2010 20:30:09 +0000 (20:30 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 27 Nov 2010 20:30:09 +0000 (20:30 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@24158 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/hostapd/Makefile
package/hostapd/patches/420-stbc_fix_backport.patch
package/hostapd/patches/600-terminate_on_setup_failure.patch [new file with mode: 0644]

index 172e89b..6f3c639 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=hostapd
 PKG_VERSION:=20100705
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_REV:=2f1ce78bf78cecd7021385b04a4f55f22e76ab97
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
index e448a01..89998d9 100644 (file)
@@ -17,11 +17,9 @@ Tested only with the nl80211 driver and a STBC incapable STA.
 Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
 ---
 
-diff --git a/src/ap/ieee802_11_ht.c b/src/ap/ieee802_11_ht.c
-index 1b39a6a..b193ee0 100644
 --- a/src/ap/ieee802_11_ht.c
 +++ b/src/ap/ieee802_11_ht.c
-@@ -256,7 +256,15 @@ void hostapd_get_ht_capab(struct hostapd_data *hapd,
+@@ -256,7 +256,15 @@ void hostapd_get_ht_capab(struct hostapd
        cap &= hapd->iconf->ht_capab;
        cap |= (hapd->iconf->ht_capab & HT_CAP_INFO_SMPS_DISABLED);
  
diff --git a/package/hostapd/patches/600-terminate_on_setup_failure.patch b/package/hostapd/patches/600-terminate_on_setup_failure.patch
new file mode 100644 (file)
index 0000000..9385413
--- /dev/null
@@ -0,0 +1,81 @@
+--- a/src/ap/hostapd.c
++++ b/src/ap/hostapd.c
+@@ -706,11 +706,8 @@ int hostapd_setup_interface_complete(str
+       size_t j;
+       u8 *prev_addr;
+-      if (err) {
+-              wpa_printf(MSG_ERROR, "Interface initialization failed");
+-              eloop_terminate();
+-              return -1;
+-      }
++      if (err)
++              goto error;
+       wpa_printf(MSG_DEBUG, "Completing interface initialization");
+       if (hapd->iconf->channel) {
+@@ -726,7 +723,7 @@ int hostapd_setup_interface_complete(str
+                                    hapd->iconf->secondary_channel)) {
+                       wpa_printf(MSG_ERROR, "Could not set channel for "
+                                  "kernel driver");
+-                      return -1;
++                      goto error;
+               }
+       }
+@@ -736,7 +733,7 @@ int hostapd_setup_interface_complete(str
+                       hostapd_logger(hapd, NULL, HOSTAPD_MODULE_IEEE80211,
+                                          HOSTAPD_LEVEL_WARNING,
+                                          "Failed to prepare rates table.");
+-                      return -1;
++                      goto error;
+               }
+       }
+@@ -744,14 +741,14 @@ int hostapd_setup_interface_complete(str
+           hostapd_set_rts(hapd, hapd->iconf->rts_threshold)) {
+               wpa_printf(MSG_ERROR, "Could not set RTS threshold for "
+                          "kernel driver");
+-              return -1;
++              goto error;
+       }
+       if (hapd->iconf->fragm_threshold > -1 &&
+           hostapd_set_frag(hapd, hapd->iconf->fragm_threshold)) {
+               wpa_printf(MSG_ERROR, "Could not set fragmentation threshold "
+                          "for kernel driver");
+-              return -1;
++              goto error;
+       }
+       prev_addr = hapd->own_addr;
+@@ -761,7 +758,7 @@ int hostapd_setup_interface_complete(str
+               if (j)
+                       os_memcpy(hapd->own_addr, prev_addr, ETH_ALEN);
+               if (hostapd_setup_bss(hapd, j == 0))
+-                      return -1;
++                      goto error;
+               if (hostapd_mac_comp_empty(hapd->conf->bssid) == 0)
+                       prev_addr = hapd->own_addr;
+       }
+@@ -773,7 +770,7 @@ int hostapd_setup_interface_complete(str
+       if (hostapd_driver_commit(hapd) < 0) {
+               wpa_printf(MSG_ERROR, "%s: Failed to commit driver "
+                          "configuration", __func__);
+-              return -1;
++              goto error;
+       }
+       wpa_printf(MSG_DEBUG, "%s: Setup of interface done.",
+@@ -783,6 +780,11 @@ int hostapd_setup_interface_complete(str
+               iface->init_complete(iface);
+       return 0;
++
++error:
++      wpa_printf(MSG_ERROR, "Interface initialization failed");
++      eloop_terminate();
++      return -1;
+ }