diff options
author | Henrik Brix Andersen <brix@gentoo.org> | 2005-10-20 13:22:24 +0000 |
---|---|---|
committer | Henrik Brix Andersen <brix@gentoo.org> | 2005-10-20 13:22:24 +0000 |
commit | 3dd16207f59a20461129c2564f2d916ba784e370 (patch) | |
tree | 9e1cda1de491d6f6bb39c0b26e7519b977a6a4aa /net-wireless/ieee80211 | |
parent | Commit a slightly modified patch from -r1 from bug #107663 (diff) | |
download | gentoo-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/ChangeLog | 8 | ||||
-rw-r--r-- | net-wireless/ieee80211/Manifest | 5 | ||||
-rw-r--r-- | net-wireless/ieee80211/files/digest-ieee80211-1.1.5-r1 | 1 | ||||
-rw-r--r-- | net-wireless/ieee80211/files/ieee80211-1.1.5-broadcast.patch | 44 | ||||
-rw-r--r-- | net-wireless/ieee80211/ieee80211-1.1.5-r1.ebuild | 89 |
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 +} |