SecBSD's official ports repository
This commit is contained in:
commit
2c0afcbbf3
64331 changed files with 5339189 additions and 0 deletions
36
net/kismet/patches/patch-packetsource_bsdrt_cc
Normal file
36
net/kismet/patches/patch-packetsource_bsdrt_cc
Normal file
|
@ -0,0 +1,36 @@
|
|||
IFM_MAKEMODE is not defined on OpenBSD, just copying it from Linux
|
||||
doesn't help, since our IFM_MSHIFT etc. operate on ULL, but mode
|
||||
apparently only is of type int
|
||||
|
||||
Index: packetsource_bsdrt.cc
|
||||
--- packetsource_bsdrt.cc.orig
|
||||
+++ packetsource_bsdrt.cc
|
||||
@@ -138,7 +138,7 @@ int Radiotap_BSD_Controller::GetMediaOpt(int& options,
|
||||
int Radiotap_BSD_Controller::SetMediaOpt(int options, int mode) {
|
||||
struct ifmediareq ifmr;
|
||||
struct ifreq ifr;
|
||||
- int *mwords;
|
||||
+ uint64_t *mwords;
|
||||
|
||||
if (CheckSocket() == 0)
|
||||
return 0;
|
||||
@@ -160,7 +160,7 @@ int Radiotap_BSD_Controller::SetMediaOpt(int options,
|
||||
return 0;
|
||||
}
|
||||
|
||||
- mwords = new int[ifmr.ifm_count];
|
||||
+ mwords = new uint64_t[ifmr.ifm_count];
|
||||
if (mwords == NULL) {
|
||||
_MSG("BSD interface control cannot malloc interface array, out of "
|
||||
"memory or other badness.", MSGFLAG_PRINTERROR);
|
||||
@@ -179,6 +179,10 @@ int Radiotap_BSD_Controller::SetMediaOpt(int options,
|
||||
memset(&ifr, 0, sizeof(ifr));
|
||||
strncpy(ifr.ifr_name, dev.c_str(), sizeof(ifr.ifr_name));
|
||||
ifr.ifr_media = (ifmr.ifm_current &~ IFM_OMASK) | options;
|
||||
+#ifndef IFM_MAKEMODE
|
||||
+#define IFM_MAKEMODE(mode) \
|
||||
+ ((((unsigned long long)mode) << IFM_MSHIFT) & IFM_MMASK)
|
||||
+#endif
|
||||
ifr.ifr_media = (ifr.ifr_media &~ IFM_MMASK) | IFM_MAKEMODE(mode);
|
||||
|
||||
if (ioctl(sock, SIOCSIFMEDIA, (caddr_t) &ifr) < 0) {
|
Loading…
Add table
Add a link
Reference in a new issue