summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc b/noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc
index 626b28c..e5a20d6 100644
--- a/noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc
+++ b/noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc
@@ -46,40 +46,45 @@ int card_into_monitormode (pcap_t **orighandle, const char *device, int cardtype
46 else if (cardtype == CARD_TYPE_NG) 46 else if (cardtype == CARD_TYPE_NG)
47 { 47 {
48 char wlanngcmd[80]; 48 char wlanngcmd[80];
49 snprintf(wlanngcmd, sizeof(wlanngcmd) - 1, "$(which wlanctl-ng) %s lnxreq_wlansniff channel=%d enable=true", device, 1); 49 snprintf(wlanngcmd, sizeof(wlanngcmd) - 1, "$(which wlanctl-ng) %s lnxreq_wlansniff channel=%d enable=true", device, 1);
50 if (system(wlanngcmd) != 0) 50 if (system(wlanngcmd) != 0)
51 { 51 {
52 wl_logerr("Could not set %s in raw mode, check cardtype", device); 52 wl_logerr("Could not set %s in raw mode, check cardtype", device);
53 return 0; 53 return 0;
54 } 54 }
55 } 55 }
56 else if (cardtype == CARD_TYPE_HOSTAP) 56 else if (cardtype == CARD_TYPE_HOSTAP)
57 { 57 {
58 int skfd; 58#if WIRELESS_EXT < 14
59 skfd = socket(AF_INET, SOCK_STREAM, 0); 59 int skfd;
60 skfd = socket(AF_INET, SOCK_STREAM, 0);
60 struct iwreq wrq; 61 struct iwreq wrq;
61 wrq.u.mode = IW_MODE_MONITOR; 62 wrq.u.mode = IW_MODE_MONITOR;
62 63
63 if(iw_set_ext(skfd,(char *) device,SIOCSIWMODE,&wrq)<0) 64 if(iw_set_ext(skfd,(char *) device,SIOCSIWMODE,&wrq)<0)
64 { 65 {
65 wl_logerr("Could not set hostap card %s to raw mode, check cardtype", device); 66 wl_logerr("Could not set hostap card %s to raw mode, check cardtype", device);
66 return 0; 67 return 0;
67 } 68 }
68 else 69 else
69 { 70 {
70 wl_loginfo("Successfully set hostap card %s into raw mode",device); 71 wl_loginfo("Successfully set hostap card %s into raw mode",device);
71 return 1; 72 return 1;
72 } 73 }
73 return 1; 74 return 1;
75#else
76#warning Hi _MAX_, please use a system call for hostap with wireless extensions < 14
77 // TODO: Implement switching HOSTAP into monitor mode with system call
78#endif
74 } 79 }
75 else if (cardtype == CARD_TYPE_ORINOCCO ) 80 else if (cardtype == CARD_TYPE_ORINOCCO )
76 { 81 {
77 if (!card_set_channel (device, 1, CARD_TYPE_ORINOCCO)) 82 if (!card_set_channel (device, 1, CARD_TYPE_ORINOCCO))
78 { 83 {
79 wl_logerr("Could not set %s in raw mode, check cardtype", device); 84 wl_logerr("Could not set %s in raw mode, check cardtype", device);
80 return 0; 85 return 0;
81 } 86 }
82 else 87 else
83 { 88 {
84 wl_loginfo("Successfully set %s into raw mode",device); 89 wl_loginfo("Successfully set %s into raw mode",device);
85 } 90 }