summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Brix Andersen <brix@gentoo.org>2005-10-20 13:22:24 +0000
committerHenrik Brix Andersen <brix@gentoo.org>2005-10-20 13:22:24 +0000
commit3dd16207f59a20461129c2564f2d916ba784e370 (patch)
tree9e1cda1de491d6f6bb39c0b26e7519b977a6a4aa /net-wireless/ieee80211
parentCommit a slightly modified patch from -r1 from bug #107663 (diff)
downloadgentoo-2-3dd16207f59a20461129c2564f2d916ba784e370.tar.gz
gentoo-2-3dd16207f59a20461129c2564f2d916ba784e370.tar.bz2
gentoo-2-3dd16207f59a20461129c2564f2d916ba784e370.zip
Patch from upstream to fix broadcast issues.
(Portage version: 2.0.51.22-r3)
Diffstat (limited to 'net-wireless/ieee80211')
-rw-r--r--net-wireless/ieee80211/ChangeLog8
-rw-r--r--net-wireless/ieee80211/Manifest5
-rw-r--r--net-wireless/ieee80211/files/digest-ieee80211-1.1.5-r11
-rw-r--r--net-wireless/ieee80211/files/ieee80211-1.1.5-broadcast.patch44
-rw-r--r--net-wireless/ieee80211/ieee80211-1.1.5-r1.ebuild89
5 files changed, 145 insertions, 2 deletions
diff --git a/net-wireless/ieee80211/ChangeLog b/net-wireless/ieee80211/ChangeLog
index a55009af6674..9917a6335459 100644
--- a/net-wireless/ieee80211/ChangeLog
+++ b/net-wireless/ieee80211/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-wireless/ieee80211
# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ChangeLog,v 1.12 2005/10/19 19:40:19 brix Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ChangeLog,v 1.13 2005/10/20 13:22:24 brix Exp $
+
+*ieee80211-1.1.5-r1 (20 Oct 2005)
+
+ 20 Oct 2005; Henrik Brix Andersen <brix@gentoo.org>
+ +files/ieee80211-1.1.5-broadcast.patch, +ieee80211-1.1.5-r1.ebuild:
+ Patch from upstream to fix broadcast issues.
19 Oct 2005; Henrik Brix Andersen <brix@gentoo.org>
files/ieee80211-1.1.5-we18.patch:
diff --git a/net-wireless/ieee80211/Manifest b/net-wireless/ieee80211/Manifest
index 148b5df0beac..118f7c2f0ce5 100644
--- a/net-wireless/ieee80211/Manifest
+++ b/net-wireless/ieee80211/Manifest
@@ -3,10 +3,12 @@ MD5 0b37106be6c69fa6ce87d5925f2a31dc ieee80211-1.0.3-r1.ebuild 2093
MD5 d94f6f0e594496b23768753d8f2fbccc ieee80211-1.0.2.ebuild 2067
MD5 8a53f6d174d515c629ee4ada4ab59a8a ieee80211-1.1.5.ebuild 2772
MD5 85642481bdfb52cc037a57a742a59e18 ieee80211-1.0.3-r2.ebuild 2744
-MD5 2a871ad38f52be60a38a23f7b13a8863 ChangeLog 1980
+MD5 08e9fa90c4debe05accd0ae9fc0931d1 ieee80211-1.1.5-r1.ebuild 2708
+MD5 78e9abff7cf23461d13bcdcaf6a0a351 ChangeLog 2187
MD5 b280eebc74d70d85e664debf1adce2c3 metadata.xml 255
MD5 54836c698b04ed62f6d7a3f6f8fa6232 ieee80211-1.0.1.ebuild 2067
MD5 03afa38292ff5bbcc62500c4b6163888 files/ieee80211-1.0.3-broadcast.patch 622
+MD5 61bac627a89e0cafb9996d2887d8a3e9 files/ieee80211-1.1.5-broadcast.patch 1939
MD5 cc0dea5fff30f8ea5fe5e62a749115d3 files/digest-ieee80211-1.0.1 63
MD5 affd67ec6900c1e7f9c123969f709181 files/digest-ieee80211-1.0.2 63
MD5 777627671d6848e14270d9f65d9d0be6 files/digest-ieee80211-1.0.3 63
@@ -14,5 +16,6 @@ MD5 27f61bbea47540d198a62c715e33a5b4 files/digest-ieee80211-1.1.5 63
MD5 ccf8b6ee79df516fce26c5780b058ac6 files/ieee80211-1.1.5-we18.patch 1973
MD5 777627671d6848e14270d9f65d9d0be6 files/digest-ieee80211-1.0.3-r1 63
MD5 777627671d6848e14270d9f65d9d0be6 files/digest-ieee80211-1.0.3-r2 63
+MD5 27f61bbea47540d198a62c715e33a5b4 files/digest-ieee80211-1.1.5-r1 63
MD5 f6533e7149d244dd72eb444853266a8f files/ieee80211-1.0.3-keep_restricted_bit.patch 1220
MD5 d2bada5c8bb423cb02a88cc4f0011d39 files/ieee80211-1.0.3-open_frag.patch 2638
diff --git a/net-wireless/ieee80211/files/digest-ieee80211-1.1.5-r1 b/net-wireless/ieee80211/files/digest-ieee80211-1.1.5-r1
new file mode 100644
index 000000000000..5f10503e90c7
--- /dev/null
+++ b/net-wireless/ieee80211/files/digest-ieee80211-1.1.5-r1
@@ -0,0 +1 @@
+MD5 e05fb14fab25462710955f464e1a7c5d ieee80211-1.1.5.tgz 70185
diff --git a/net-wireless/ieee80211/files/ieee80211-1.1.5-broadcast.patch b/net-wireless/ieee80211/files/ieee80211-1.1.5-broadcast.patch
new file mode 100644
index 000000000000..83f6e7de5879
--- /dev/null
+++ b/net-wireless/ieee80211/files/ieee80211-1.1.5-broadcast.patch
@@ -0,0 +1,44 @@
+diff -urp ieee80211-1.1.5/ieee80211_rx.c ieee80211-1.1.5-broadcast/ieee80211_rx.c
+--- ieee80211-1.1.5/ieee80211_rx.c 2005-10-14 02:12:12.000000000 +0800
++++ ieee80211-1.1.5-broadcast/ieee80211_rx.c 2005-10-19 15:52:46.000000000 +0800
+@@ -409,8 +409,9 @@ int ieee80211_rx(struct ieee80211_device
+ return 1;
+ }
+
+- if (is_multicast_ether_addr(hdr->addr1) ? ieee->host_mc_decrypt :
+- ieee->host_decrypt) {
++ if ((is_multicast_ether_addr(hdr->addr1) ||
++ ieee80211_is_broadcast_ether_addr(hdr->addr1)) ? ieee->host_mc_decrypt :
++ ieee->host_decrypt) {
+ int idx = 0;
+ if (skb->len >= hdrlen + 3)
+ idx = skb->data[hdrlen + 3] >> 6;
+diff -urp ieee80211-1.1.5/ieee80211_tx.c ieee80211-1.1.5-broadcast/ieee80211_tx.c
+--- ieee80211-1.1.5/ieee80211_tx.c 2005-10-14 02:12:12.000000000 +0800
++++ ieee80211-1.1.5-broadcast/ieee80211_tx.c 2005-10-19 15:55:38.000000000 +0800
+@@ -338,7 +338,8 @@ int ieee80211_xmit(struct sk_buff *skb,
+ if (host_encrypt || ieee->host_open_frag) {
+ /* Determine fragmentation size based on destination (multicast
+ * and broadcast are not fragmented) */
+- if (is_multicast_ether_addr(dest))
++ if (is_multicast_ether_addr(dest) ||
++ ieee80211_is_broadcast_ether_addr(dest))
+ frag_size = MAX_FRAG_THRESHOLD;
+ else
+ frag_size = ieee->fts;
+diff -urp ieee80211-1.1.5/net/ieee80211.h ieee80211-1.1.5-broadcast/net/ieee80211.h
+--- ieee80211-1.1.5/net/ieee80211.h 2005-10-14 02:12:12.000000000 +0800
++++ ieee80211-1.1.5-broadcast/net/ieee80211.h 2005-10-19 15:51:31.000000000 +0800
+@@ -962,6 +962,12 @@ static inline int is_multicast_ether_add
+ }
+ #endif
+
++static inline int ieee80211_is_broadcast_ether_addr(const u8 *addr)
++{
++ return (addr[0] == 0xff && addr[1] == 0xff && addr[2] == 0xff &&
++ addr[3] == 0xff && addr[4] == 0xff && addr[5] == 0xff);
++}
++
+ static inline void *ieee80211_priv(struct net_device *dev)
+ {
+ return ((struct ieee80211_device *)netdev_priv(dev))->priv;
diff --git a/net-wireless/ieee80211/ieee80211-1.1.5-r1.ebuild b/net-wireless/ieee80211/ieee80211-1.1.5-r1.ebuild
new file mode 100644
index 000000000000..027dd912e04c
--- /dev/null
+++ b/net-wireless/ieee80211/ieee80211-1.1.5-r1.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ieee80211-1.1.5-r1.ebuild,v 1.1 2005/10/20 13:22:24 brix Exp $
+
+inherit eutils linux-mod
+
+# The following works with both pre-releases and releases
+MY_P=${P/_/-}
+S=${WORKDIR}/${MY_P}
+
+DESCRIPTION="Generic IEEE 802.11 network subsystem for Linux"
+HOMEPAGE="http://ieee80211.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="!<=net-wireless/ipw2100-1.1.0
+ !<=net-wireless/ipw2200-1.0.4"
+RDEPEND="${DEPEND}"
+
+IUSE="debug"
+BUILD_TARGETS="all"
+MODULE_NAMES="ieee80211(net/ieee80211:)
+ ieee80211_crypt(net/ieee80211:)
+ ieee80211_crypt_wep(net/ieee80211:)
+ ieee80211_crypt_ccmp(net/ieee80211:)
+ ieee80211_crypt_tkip(net/ieee80211:)"
+
+CONFIG_CHECK="NET_RADIO CRYPTO_ARC4 CRYPTO_MICHAEL_MIC CRC32 !IEEE80211"
+ERROR_NET_RADIO="${P} requires support for Wireless LAN drivers (non-hamradio) & Wireless Extensions (CONFIG_NET_RADIO)."
+ERROR_CRYPTO_ARC4="${P} requires support for ARC4 cipher algorithm (CONFIG_CRYPTO_ARC4)."
+ERROR_CRYPTO_MICHAEL_MIC="${P} requires support for Michael MIC keyed digest algorithm (CONFIG_CRYPTO_MICHAEL_MIC)."
+ERROR_CRC32="${P} requires support for CRC32 functions (CONFIG_CRC32)."
+ERROR_IEEE80211="${P} requires the in-kernel version of the IEEE802.11 subsystem to be disabled (CONFIG_IEEE80211)"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ if kernel_is 2 4; then
+ die "${P} does not support building against kernel 2.4.x"
+ fi
+
+ if [[ -f ${KV_DIR}/include/net/ieee80211.h ]]; then
+ eerror
+ eerror "You kernel source contains an incomptible version of the"
+ eerror "ieee80211 subsystem, which needs to be removed before"
+ eerror "${P} can be installed. This can be accomplished by running:"
+ eerror
+ eerror " # rm -i ${KV_DIR}/include/net/ieee80211.h"
+ eerror
+ eerror "Please note that this will make it impossible to use some of the"
+ eerror "in-kernel IEEE 802.11 wireless LAN drivers (eg. orinoco)."
+ eerror
+ die "Incompatible in-kernel ieee80211 subsystem detected"
+ fi
+
+ if ! (linux_chkconfig_present CRYPTO_AES_586 || \
+ linux_chkconfig_present CRYPTO_AES_X86_64 || \
+ linux_chkconfig_present CRYPTO_AES); then
+ eerror "${P} requires support for AES cipher algorithms."
+ die "CONFIG_CRYPTO_AES{_586,_X86_64} support not detected"
+ fi
+
+ BUILD_PARAMS="KSRC=${KV_DIR} KSRC_OUTPUT=${KV_OUT_DIR}"
+}
+
+src_unpack() {
+ local debug="n"
+
+ unpack ${A}
+
+ cd ${S}
+ epatch ${FILESDIR}/${P}-we18.patch
+ epatch ${FILESDIR}/${P}-broadcast.patch
+
+ use debug && debug="y"
+ sed -i -e "s:^\(CONFIG_IEEE80211_DEBUG\)=.*:\1=${debug}:" ${S}/Makefile
+}
+
+src_install() {
+ linux-mod_src_install
+
+ insinto /usr/include/net
+ doins net/*.h
+
+ dodoc CHANGES
+}