summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2003-02-12 22:38:17 (UTC)
committer mickeyl <mickeyl>2003-02-12 22:38:17 (UTC)
commit4c0fca7a9a99be7b6aad58e93f7a2d99f74b236c (patch) (side-by-side diff)
tree13201d8d8d5d832c0b3ab17ffdfe732261609a89
parentdc326e87d4a958ee49210fff9d03967f8a183242 (diff)
downloadopie-4c0fca7a9a99be7b6aad58e93f7a2d99f74b236c.zip
opie-4c0fca7a9a99be7b6aad58e93f7a2d99f74b236c.tar.gz
opie-4c0fca7a9a99be7b6aad58e93f7a2d99f74b236c.tar.bz2
fix compilation on systems with wireless extensions < V15
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
@@ -34,64 +34,69 @@ int card_into_monitormode (pcap_t **orighandle, const char *device, int cardtype
/* bring the sniffer into rfmon mode */
snprintf(CiscoRFMON, sizeof(CiscoRFMON) - 1, DEFAULT_PATH, device);
if((CISCO_CONFIG_FILE = fopen(CiscoRFMON,"w")) == NULL)
{
wl_logerr("Cannot open config file: %s", strerror(errno));
return 0;
}
fputs ("Mode: r",CISCO_CONFIG_FILE);
fputs ("Mode: y",CISCO_CONFIG_FILE);
fputs ("XmitPower: 1",CISCO_CONFIG_FILE);
fclose(CISCO_CONFIG_FILE);
}
else if (cardtype == CARD_TYPE_NG)
{
char wlanngcmd[80];
snprintf(wlanngcmd, sizeof(wlanngcmd) - 1, "$(which wlanctl-ng) %s lnxreq_wlansniff channel=%d enable=true", device, 1);
if (system(wlanngcmd) != 0)
{
wl_logerr("Could not set %s in raw mode, check cardtype", device);
return 0;
}
}
else if (cardtype == CARD_TYPE_HOSTAP)
{
- int skfd;
- skfd = socket(AF_INET, SOCK_STREAM, 0);
+#if WIRELESS_EXT < 14
+ int skfd;
+ skfd = socket(AF_INET, SOCK_STREAM, 0);
struct iwreq wrq;
wrq.u.mode = IW_MODE_MONITOR;
if(iw_set_ext(skfd,(char *) device,SIOCSIWMODE,&wrq)<0)
{
wl_logerr("Could not set hostap card %s to raw mode, check cardtype", device);
return 0;
}
else
{
wl_loginfo("Successfully set hostap card %s into raw mode",device);
return 1;
}
return 1;
+#else
+#warning Hi _MAX_, please use a system call for hostap with wireless extensions < 14
+ // TODO: Implement switching HOSTAP into monitor mode with system call
+#endif
}
else if (cardtype == CARD_TYPE_ORINOCCO )
{
if (!card_set_channel (device, 1, CARD_TYPE_ORINOCCO))
{
wl_logerr("Could not set %s in raw mode, check cardtype", device);
return 0;
}
else
{
wl_loginfo("Successfully set %s into raw mode",device);
}
}
/* Setting the promiscous and up flag to the interface */
if (!card_check_rfmon_datalink(device))
{
wl_logerr("Cannot set interface to rfmon mode");
return 0;
}
else
{
wl_loginfo("Interface set to rfmon mode");
}