cee6e1c9ce
git-svn-id: svn://svn.openwrt.org/openwrt/packages@26910 3c298f89-4303-0410-b956-a3cf2f4a3e73
53 lines
1.8 KiB
Diff
53 lines
1.8 KiB
Diff
--- 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 }
|
|
};
|
|
|