From c192333e77e9403ec0ea677848bf4c5b2bcb62ca Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Mon, 16 May 2011 12:33:32 +0000 Subject: [PATCH] [packages] aircrack-ng: implement --ignore-negative-one option to cope with cfg80211 monitor mode channel issues SVN-Revision: 26910 --- net/aircrack-ng/Makefile | 4 +- .../100-add-ignore-channel-negative-1.patch | 52 +++++++++++++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 net/aircrack-ng/patches/100-add-ignore-channel-negative-1.patch diff --git a/net/aircrack-ng/Makefile b/net/aircrack-ng/Makefile index d47dc86e43..e912dfeed1 100644 --- a/net/aircrack-ng/Makefile +++ b/net/aircrack-ng/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2010 OpenWrt.org +# Copyright (C) 2006-2011 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=aircrack-ng PKG_VERSION:=1.1 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://download.aircrack-ng.org/ \ diff --git a/net/aircrack-ng/patches/100-add-ignore-channel-negative-1.patch b/net/aircrack-ng/patches/100-add-ignore-channel-negative-1.patch new file mode 100644 index 0000000000..394a300077 --- /dev/null +++ b/net/aircrack-ng/patches/100-add-ignore-channel-negative-1.patch @@ -0,0 +1,52 @@ +--- a/src/aireplay-ng.c ++++ b/src/aireplay-ng.c +@@ -200,7 +200,9 @@ char usage[] = + "\n" + " Miscellaneous options:\n" + "\n" +-" -R : disable /dev/rtc usage\n" ++" -R : disable /dev/rtc usage\n" ++" --ignore-negative-one : if the interface's channel can't be determined,\n" ++" ignore the mismatch, needed for unpatched cfg80211\n" + "\n" + " Attack modes (numbers can still be used):\n" + "\n" +@@ -268,6 +270,7 @@ struct options + int bittest; + + int nodetect; ++ int ignore_negative_one; + int rtc; + } + opt; +@@ -715,6 +718,13 @@ int attack_check(uchar* bssid, char* ess + + iface_chan = wi_get_channel(wi); + ++ if(iface_chan == -1 && !opt.ignore_negative_one) ++ { ++ PCT; printf("Couldn't determine current channel for %s, you should either force the operation with --ignore-negative-one or apply a kernel patch\n", ++ wi_get_ifname(wi)); ++ return -1; ++ } ++ + if(bssid != NULL) + { + ap_chan = wait_for_beacon(bssid, capa, essid); +@@ -723,7 +733,7 @@ int attack_check(uchar* bssid, char* ess + PCT; printf("No such BSSID available.\n"); + return -1; + } +- if(ap_chan != iface_chan) ++ if((ap_chan != iface_chan) && (iface_chan != -1 || !opt.ignore_negative_one)) + { + PCT; printf("%s is on channel %d, but the AP uses channel %d\n", wi_get_ifname(wi), iface_chan, ap_chan); + return -1; +@@ -5765,6 +5775,7 @@ int main( int argc, char *argv[] ) + {"help", 0, 0, 'H'}, + {"fast", 0, 0, 'F'}, + {"bittest", 0, 0, 'B'}, ++ {"ignore-negative-one", 0, &opt.ignore_negative_one, 1}, + {0, 0, 0, 0 } + }; + -- 2.30.2