diff -aur AirSnort-0.2.0/src/capture.c AirSnort-0.2.0-patched/src/capture.c --- AirSnort-0.2.0/src/capture.c Fri Mar 1 16:45:47 2002 +++ AirSnort-0.2.0-patched/src/capture.c Tue Mar 19 07:24:35 2002 @@ -254,6 +254,7 @@ int result = -1; int fd; struct iwreq ireq; //for Orinoco + int *ptr; memset(&sniff, 0, sizeof(p80211msg_lnxreq_wlansniff_t)); sniff.msgcode = DIDmsg_lnxreq_wlansniff; @@ -279,9 +280,11 @@ if ( fd == -1 ) { return result; } - ireq.u.data.pointer = (caddr_t) &sniff; + ptr = (int *) ireq.u.name; + ptr[0] = 1; + ptr[1] = chan; strcpy(ireq.ifr_ifrn.ifrn_name, dev); - result = ioctl( fd, SIOCDEVPRIVATE + 0x8, &ireq); + result = ioctl( fd, SIOCIWFIRSTPRIV + 0x8, &ireq); close(fd); } else { @@ -304,6 +307,7 @@ int result = -1; int fd; struct iwreq ireq; //for Orinoco + int *ptr; memset(&sniff, 0, sizeof(p80211msg_lnxreq_wlansniff_t)); sniff.msgcode = DIDmsg_lnxreq_wlansniff; @@ -329,9 +333,12 @@ if ( fd == -1 ) { return result; } + ptr = (int *) ireq.u.name; + ptr[0] = 0; + ptr[1] = 0; ireq.u.data.pointer = (caddr_t) &sniff; strcpy(ireq.ifr_ifrn.ifrn_name, dev); - result = ioctl( fd, SIOCDEVPRIVATE + 0x8, &ireq); + result = ioctl( fd, SIOCIWFIRSTPRIV + 0x8, &ireq); close(fd); } else { diff -aur AirSnort-0.2.0/src/capture.h AirSnort-0.2.0-patched/src/capture.h --- AirSnort-0.2.0/src/capture.h Fri Mar 1 16:45:47 2002 +++ AirSnort-0.2.0-patched/src/capture.h Thu Mar 14 21:38:04 2002 @@ -39,8 +39,12 @@ unsigned char *iv; //pointer to the frame body } CaptureRec; +#ifndef SIOCIWFIRSTPRIV +#define SIOCIWFIRSTPRIV SIOCDEVPRIVATE +#endif + #define P80211_IOCTL_MAGIC (0x4a2d464dUL) -#define P80211_IFREQ (SIOCDEVPRIVATE + 1) +#define P80211_IFREQ (SIOCIWFIRSTPRIV + 1) #define WLAN_DEVNAMELEN_MAX 16 extern int useOrinoco;