Преглед на файлове

hostapd: update to latest git, fixes ampdu settings in the beacon HT IE

SVN-Revision: 18606
Felix Fietkau преди 16 години
родител
ревизия
4ca03b54ee

+ 2 - 2
package/hostapd/Makefile

@@ -8,9 +8,9 @@
 include $(TOPDIR)/rules.mk
 include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=hostapd
 PKG_NAME:=hostapd
-PKG_VERSION:=20091111
+PKG_VERSION:=20091129
 PKG_RELEASE:=1
 PKG_RELEASE:=1
-PKG_REV:=dc6d9ac250f793a62b21ca828445967fb484305f
+PKG_REV:=be8eb8ab3ee42aa66930aea827bdcb05a2172276
 
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=git://w1.fi/srv/git/hostap.git
 PKG_SOURCE_URL:=git://w1.fi/srv/git/hostap.git

+ 2 - 2
package/hostapd/patches/100-madwifi_fix.patch

@@ -1,6 +1,6 @@
 --- a/src/drivers/driver_madwifi.c
 --- a/src/drivers/driver_madwifi.c
 +++ b/src/drivers/driver_madwifi.c
 +++ b/src/drivers/driver_madwifi.c
-@@ -318,6 +318,7 @@ madwifi_set_iface_flags(void *priv, int 
+@@ -323,6 +323,7 @@ madwifi_set_iface_flags(void *priv, int 
  {
  {
  	struct madwifi_driver_data *drv = priv;
  	struct madwifi_driver_data *drv = priv;
  	struct ifreq ifr;
  	struct ifreq ifr;
@@ -8,7 +8,7 @@
  
  
  	wpa_printf(MSG_DEBUG, "%s: dev_up=%d", __func__, dev_up);
  	wpa_printf(MSG_DEBUG, "%s: dev_up=%d", __func__, dev_up);
  
  
-@@ -332,10 +333,14 @@ madwifi_set_iface_flags(void *priv, int 
+@@ -337,10 +338,14 @@ madwifi_set_iface_flags(void *priv, int 
  		return -1;
  		return -1;
  	}
  	}
  
  

+ 1 - 1
package/hostapd/patches/110-countrycode.patch

@@ -1,6 +1,6 @@
 --- a/hostapd/hostapd.c
 --- a/hostapd/hostapd.c
 +++ b/hostapd/hostapd.c
 +++ b/hostapd/hostapd.c
-@@ -1344,10 +1344,8 @@ static int setup_interface(struct hostap
+@@ -1339,10 +1339,8 @@ static int setup_interface(struct hostap
  	if (hapd->iconf->country[0] && hapd->iconf->country[1]) {
  	if (hapd->iconf->country[0] && hapd->iconf->country[1]) {
  		os_memcpy(country, hapd->iconf->country, 3);
  		os_memcpy(country, hapd->iconf->country, 3);
  		country[3] = '\0';
  		country[3] = '\0';

+ 0 - 16
package/hostapd/patches/120-nl80211_ap_fix.patch

@@ -1,16 +0,0 @@
---- a/src/drivers/driver_nl80211.c
-+++ b/src/drivers/driver_nl80211.c
-@@ -4418,10 +4418,10 @@ static void *i802_init(struct hostapd_da
- 	/* start listening for EAPOL on the default AP interface */
- 	add_ifidx(drv, drv->ifindex);
- 
--	if (params->bssid) {
--		if (hostapd_set_iface_flags(drv, drv->ifname, 0))
--			goto failed;
-+	if (hostapd_set_iface_flags(drv, drv->ifname, 0))
-+		goto failed;
- 
-+	if (params->bssid) {
- 		if (set_ifhwaddr(drv, drv->ifname, params->bssid))
- 			goto failed;
- 	}

+ 14 - 14
package/hostapd/patches/130-wds_ap.patch → package/hostapd/patches/120-wds_ap.patch

@@ -11,7 +11,7 @@
  		} else if (os_strcmp(buf, "country_code") == 0) {
  		} else if (os_strcmp(buf, "country_code") == 0) {
 --- a/hostapd/config.h
 --- a/hostapd/config.h
 +++ b/hostapd/config.h
 +++ b/hostapd/config.h
-@@ -198,6 +198,7 @@ struct hostapd_bss_config {
+@@ -195,6 +195,7 @@ struct hostapd_bss_config {
  	int num_accept_mac;
  	int num_accept_mac;
  	struct mac_acl_entry *deny_mac;
  	struct mac_acl_entry *deny_mac;
  	int num_deny_mac;
  	int num_deny_mac;
@@ -21,7 +21,7 @@
  			* algorithms, WPA_AUTH_ALG_{OPEN,SHARED,LEAP} */
  			* algorithms, WPA_AUTH_ALG_{OPEN,SHARED,LEAP} */
 --- a/src/drivers/driver.h
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -1305,6 +1305,7 @@ struct wpa_driver_ops {
+@@ -1127,6 +1127,7 @@ struct wpa_driver_ops {
  			 const char *ifname, const u8 *addr);
  			 const char *ifname, const u8 *addr);
  	int (*set_sta_vlan)(void *priv, const u8 *addr, const char *ifname,
  	int (*set_sta_vlan)(void *priv, const u8 *addr, const char *ifname,
  			    int vlan_id);
  			    int vlan_id);
@@ -31,7 +31,7 @@
  	 * @priv: driver private data
  	 * @priv: driver private data
 --- a/src/drivers/driver_nl80211.c
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -2755,7 +2755,7 @@ static void nl80211_remove_iface(struct 
+@@ -2675,7 +2675,7 @@ static void nl80211_remove_iface(struct 
  static int nl80211_create_iface_once(struct wpa_driver_nl80211_data *drv,
  static int nl80211_create_iface_once(struct wpa_driver_nl80211_data *drv,
  				     const char *ifname,
  				     const char *ifname,
  				     enum nl80211_iftype iftype,
  				     enum nl80211_iftype iftype,
@@ -40,7 +40,7 @@
  {
  {
  	struct nl_msg *msg, *flags = NULL;
  	struct nl_msg *msg, *flags = NULL;
  	int ifidx;
  	int ifidx;
-@@ -2786,6 +2786,8 @@ static int nl80211_create_iface_once(str
+@@ -2706,6 +2706,8 @@ static int nl80211_create_iface_once(str
  
  
  		if (err)
  		if (err)
  			goto nla_put_failure;
  			goto nla_put_failure;
@@ -49,7 +49,7 @@
  	}
  	}
  
  
  	ret = send_and_recv_msgs(drv, msg, NULL, NULL);
  	ret = send_and_recv_msgs(drv, msg, NULL, NULL);
-@@ -2816,11 +2818,11 @@ static int nl80211_create_iface_once(str
+@@ -2736,11 +2738,11 @@ static int nl80211_create_iface_once(str
  }
  }
  static int nl80211_create_iface(struct wpa_driver_nl80211_data *drv,
  static int nl80211_create_iface(struct wpa_driver_nl80211_data *drv,
  				const char *ifname, enum nl80211_iftype iftype,
  				const char *ifname, enum nl80211_iftype iftype,
@@ -63,7 +63,7 @@
  
  
  	/* if error occured and interface exists already */
  	/* if error occured and interface exists already */
  	if (ret == -ENFILE && if_nametoindex(ifname)) {
  	if (ret == -ENFILE && if_nametoindex(ifname)) {
-@@ -2830,7 +2832,7 @@ static int nl80211_create_iface(struct w
+@@ -2750,7 +2752,7 @@ static int nl80211_create_iface(struct w
  		nl80211_remove_iface(drv, if_nametoindex(ifname));
  		nl80211_remove_iface(drv, if_nametoindex(ifname));
  
  
  		/* Try to create the interface again */
  		/* Try to create the interface again */
@@ -72,7 +72,7 @@
  	}
  	}
  
  
  	return ret;
  	return ret;
-@@ -3055,7 +3057,7 @@ static struct sock_filter msock_filter_i
+@@ -2975,7 +2977,7 @@ static struct sock_filter msock_filter_i
  
  
  #if 0
  #if 0
  	/*
  	/*
@@ -81,7 +81,7 @@
  	 */
  	 */
  	/* load the lower byte of the frame control field */
  	/* load the lower byte of the frame control field */
  	BPF_STMT(BPF_LD   | BPF_B | BPF_IND, 0),
  	BPF_STMT(BPF_LD   | BPF_B | BPF_IND, 0),
-@@ -3063,13 +3065,13 @@ static struct sock_filter msock_filter_i
+@@ -2983,13 +2985,13 @@ static struct sock_filter msock_filter_i
  	BPF_STMT(BPF_ALU  | BPF_AND | BPF_K, 0x0c),
  	BPF_STMT(BPF_ALU  | BPF_AND | BPF_K, 0x0c),
  	/* drop non-data frames */
  	/* drop non-data frames */
  	BPF_JUMP(BPF_JMP  | BPF_JEQ | BPF_K, 8, 0, FAIL),
  	BPF_JUMP(BPF_JMP  | BPF_JEQ | BPF_K, 8, 0, FAIL),
@@ -99,7 +99,7 @@
  
  
  	/*
  	/*
  	 * add header length to index
  	 * add header length to index
-@@ -3175,7 +3177,7 @@ nl80211_create_monitor_interface(struct 
+@@ -3095,7 +3097,7 @@ nl80211_create_monitor_interface(struct 
  	buf[IFNAMSIZ - 1] = '\0';
  	buf[IFNAMSIZ - 1] = '\0';
  
  
  	drv->monitor_ifidx =
  	drv->monitor_ifidx =
@@ -108,7 +108,7 @@
  
  
  	if (drv->monitor_ifidx < 0)
  	if (drv->monitor_ifidx < 0)
  		return -1;
  		return -1;
-@@ -4155,7 +4157,7 @@ static int i802_bss_add(void *priv, cons
+@@ -4064,7 +4066,7 @@ static int i802_bss_add(void *priv, cons
  	if (bss == NULL)
  	if (bss == NULL)
  		return -1;
  		return -1;
  
  
@@ -117,7 +117,7 @@
  	if (ifidx < 0) {
  	if (ifidx < 0) {
  		os_free(bss);
  		os_free(bss);
  		return -1;
  		return -1;
-@@ -4264,7 +4266,7 @@ static int i802_if_add(const char *iface
+@@ -4162,7 +4164,7 @@ static int i802_if_add(const char *iface
  		       enum hostapd_driver_if_type type, char *ifname,
  		       enum hostapd_driver_if_type type, char *ifname,
  		       const u8 *addr)
  		       const u8 *addr)
  {
  {
@@ -126,7 +126,7 @@
  		return -1;
  		return -1;
  	return 0;
  	return 0;
  }
  }
-@@ -4310,6 +4312,22 @@ static int i802_set_sta_vlan(void *priv,
+@@ -4208,6 +4210,22 @@ static int i802_set_sta_vlan(void *priv,
  	return -ENOBUFS;
  	return -ENOBUFS;
  }
  }
  
  
@@ -149,7 +149,7 @@
  
  
  static void handle_eapol(int sock, void *eloop_ctx, void *sock_ctx)
  static void handle_eapol(int sock, void *eloop_ctx, void *sock_ctx)
  {
  {
-@@ -4536,5 +4554,6 @@ const struct wpa_driver_ops wpa_driver_n
+@@ -4424,5 +4442,6 @@ const struct wpa_driver_ops wpa_driver_n
  	.if_update = i802_if_update,
  	.if_update = i802_if_update,
  	.if_remove = i802_if_remove,
  	.if_remove = i802_if_remove,
  	.set_sta_vlan = i802_set_sta_vlan,
  	.set_sta_vlan = i802_set_sta_vlan,
@@ -158,7 +158,7 @@
  };
  };
 --- a/hostapd/driver_i.h
 --- a/hostapd/driver_i.h
 +++ b/hostapd/driver_i.h
 +++ b/hostapd/driver_i.h
-@@ -453,6 +453,14 @@ hostapd_set_sta_vlan(const char *ifname,
+@@ -446,6 +446,14 @@ hostapd_set_sta_vlan(const char *ifname,
  }
  }
  
  
  static inline int
  static inline int

+ 10 - 0
package/hostapd/patches/130-compile_fix.patch

@@ -0,0 +1,10 @@
+--- a/src/drivers/driver_nl80211.c
++++ b/src/drivers/driver_nl80211.c
+@@ -23,6 +23,7 @@
+ #include <netlink/genl/genl.h>
+ #include <netlink/genl/family.h>
+ #include <netlink/genl/ctrl.h>
++#include <linux/rtnetlink.h>
+ #include "nl80211_copy.h"
+ 
+ #include "common.h"

+ 0 - 11
package/hostapd/patches/140-ht40_scan.patch

@@ -1,11 +0,0 @@
---- a/hostapd/hw_features.c
-+++ b/hostapd/hw_features.c
-@@ -329,7 +329,7 @@ static int ieee80211n_check_40mhz_5g(str
- 	if (!match) {
- 		for (i = 0; i < scan_res->num; i++) {
- 			struct wpa_scan_res *bss = scan_res->res[i];
--			ieee80211n_get_pri_sec_chan(bss, &pri_chan, &sec_chan);
-+			ieee80211n_get_pri_sec_chan(bss, &bss_pri_chan, &bss_sec_chan);
- 			if (pri_chan == bss_sec_chan &&
- 			    sec_chan == bss_pri_chan) {
- 				wpa_printf(MSG_INFO, "Switch own primary and "

+ 0 - 33
package/hostapd/patches/150-ht_cap_endian.patch

@@ -1,33 +0,0 @@
---- a/hostapd/ieee802_11.c
-+++ b/hostapd/ieee802_11.c
-@@ -1586,24 +1586,16 @@ hostapd_get_ht_capab(struct hostapd_data
- 		     struct ht_cap_ie *ht_cap_ie,
- 		     struct ht_cap_ie *neg_ht_cap_ie)
- {
-+	u16 cap;
- 
- 	os_memcpy(neg_ht_cap_ie, ht_cap_ie, sizeof(struct ht_cap_ie));
--	neg_ht_cap_ie->data.capabilities_info =
--		ht_cap_ie->data.capabilities_info & hapd->iconf->ht_capab;
--
--	neg_ht_cap_ie->data.capabilities_info &= ~HT_CAP_INFO_SMPS_DISABLED;
--	if ((ht_cap_ie->data.capabilities_info & HT_CAP_INFO_SMPS_DISABLED) ==
--	    (hapd->iconf->ht_capab & HT_CAP_INFO_SMPS_DISABLED))
--		neg_ht_cap_ie->data.capabilities_info |=
--			hapd->iconf->ht_capab & HT_CAP_INFO_SMPS_DISABLED;
--	else
--		neg_ht_cap_ie->data.capabilities_info |=
--			HT_CAP_INFO_SMPS_DISABLED;
-+	cap = le_to_host16(neg_ht_cap_ie->data.capabilities_info);
-+	cap &= hapd->iconf->ht_capab;
-+	cap |= (hapd->iconf->ht_capab & HT_CAP_INFO_SMPS_DISABLED);
- 
- 	/* FIXME: Rx STBC needs to be handled specially */
--	neg_ht_cap_ie->data.capabilities_info &= ~HT_CAP_INFO_RX_STBC_MASK;
--	neg_ht_cap_ie->data.capabilities_info |=
--		hapd->iconf->ht_capab & HT_CAP_INFO_RX_STBC_MASK;
-+	cap |= (hapd->iconf->ht_capab & HT_CAP_INFO_RX_STBC_MASK);
-+	neg_ht_cap_ie->data.capabilities_info = host_to_le16(cap);
- }
- #endif /* CONFIG_IEEE80211N */
-