summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc32
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/cardmode.hh3
2 files changed, 4 insertions, 31 deletions
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc b/noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc
index a9b3276..a1c3945 100644
--- a/noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc
+++ b/noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc
@@ -7,15 +7,11 @@
7#include "cardmode.hh" 7#include "cardmode.hh"
8 8
9/* main card into monitor function */ 9/* main card into monitor function */
10int card_into_monitormode (void *orighandle, char *device, int cardtype) 10int card_into_monitormode (pcap_t **orighandle, char *device, int cardtype)
11{ 11{
12 int datalink; /* used for getting the pcap datalink type */
13 char CiscoRFMON[35] = "/proc/driver/aironet/"; 12 char CiscoRFMON[35] = "/proc/driver/aironet/";
14 FILE *CISCO_CONFIG_FILE; 13 FILE *CISCO_CONFIG_FILE;
15 char errbuf[PCAP_ERRBUF_SIZE]; 14 pcap_t *handle = (pcap_t*)orighandle;
16 pcap_t *handle;
17
18 handle = (pcap_t *)orighandle;
19 15
20 /* Checks if we have a device to sniff on */ 16 /* Checks if we have a device to sniff on */
21 if(device == NULL) 17 if(device == NULL)
@@ -62,28 +58,6 @@ int card_into_monitormode (void *orighandle, char *device, int cardtype)
62 wl_logerr("Got a host-ap card, nothing is implemented now"); 58 wl_logerr("Got a host-ap card, nothing is implemented now");
63 } 59 }
64 60
65 /* Check the interface if it is in the correct raw mode */
66 if((handle = pcap_open_live(device, BUFSIZ, 1, 0, errbuf)) == NULL)
67 {
68 wl_logerr("pcap_open_live() failed: %s", strerror(errno));
69 return 0;
70 }
71
72#ifdef HAVE_PCAP_NONBLOCK
73 pcap_setnonblock(handle, 1, errstr);
74#endif
75
76 /* getting the datalink type */
77 datalink = pcap_datalink(handle);
78
79 if (datalink != DLT_IEEE802_11) /* Rawmode is IEEE802_11 */
80 {
81 wl_loginfo("Interface %s does not work in the correct 802.11 raw mode", device);
82 pcap_close(handle);
83 return 0;
84 }
85 wl_loginfo("Your successfully listen on %s in 802.11 raw mode", device);
86
87 return 1; 61 return 1;
88} 62}
89 63
@@ -96,7 +70,7 @@ int card_set_promisc_up (const char *device)
96 snprintf(ifconfigcmd, sizeof(ifconfigcmd), SBIN_PATH, device); 70 snprintf(ifconfigcmd, sizeof(ifconfigcmd), SBIN_PATH, device);
97 retval = system(ifconfigcmd); 71 retval = system(ifconfigcmd);
98 72
99 if(retval < 0 || retval == 1) 73 if(retval != 0)
100 return 0; 74 return 0;
101 75
102return 1; 76return 1;
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/cardmode.hh b/noncore/net/wellenreiter/libwellenreiter/source/cardmode.hh
index d80b24b..976ceeb 100644
--- a/noncore/net/wellenreiter/libwellenreiter/source/cardmode.hh
+++ b/noncore/net/wellenreiter/libwellenreiter/source/cardmode.hh
@@ -27,8 +27,7 @@
27#define WLANCTL_PATH "/sbin/wlanctl-ng" 27#define WLANCTL_PATH "/sbin/wlanctl-ng"
28 28
29/* Prototypes */ 29/* Prototypes */
30 30int card_into_monitormode (pcap_t **, char *, int);
31int card_into_monitormode (void *, char *, int);
32int card_set_promisc_up (const char *); 31int card_set_promisc_up (const char *);
33 32
34#endif /* CARDMODE_HH */ 33#endif /* CARDMODE_HH */