pfring: follow API change

As pointed out in issue #459, pf_ring API has changed. Since
5.4.0 release pf_ring_open has one less argument.
remotes/origin/HEAD
Eric Leblond 13 years ago committed by Victor Julien
parent 48da3bb48b
commit dbf5d79e43

@ -747,10 +747,7 @@ AC_INIT(configure.in)
],
[
u_char *buffer;
struct pfring_pkthdr hdr;
pfring *pd; memset(&hdr, 0, sizeof(hdr));
pd = pfring_open("eth1", 1, 1515, 1);
pfring_recv(pd, &buffer, 0, &hdr, 1);
pfring_recv(NULL, &buffer, 0, NULL, 1);
],
[ pfring_recv_uchar_buff=yes ], [:])
@ -762,6 +759,27 @@ AC_INIT(configure.in)
else
AC_MSG_RESULT(no)
fi
# check if the argument to nfq_get_payload is signed or unsigned
AC_MSG_CHECKING([for post 5.4.0 pfring_open function])
STORECFLAGS="${CFLAGS}"
CFLAGS="${CFLAGS} -Werror"
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[
#include <pfring.h>
],
[
pfring_open(NULL, 0, 0);
])],
[pfring_new_open="yes"],
[pfring_new_open="no"])
AC_MSG_RESULT($pfring_new_open)
if test "x$pfring_new_open" = "xyes"; then
AC_DEFINE([HAVE_PFRING_OPEN_NEW], [1], [For post 5.4.0 version of pfring_open])
fi
CFLAGS="${STORECFLAGS}"
])

@ -334,7 +334,12 @@ TmEcode ReceivePfringThreadInit(ThreadVars *tv, void *initdata, void **data) {
SCReturnInt(TM_ECODE_FAILED);
}
#ifdef HAVE_PFRING_OPEN_NEW
ptv->pd = pfring_open(ptv->interface, (uint32_t)default_packet_size,
PF_RING_REENTRANT | PF_RING_LONG_HEADER | PF_RING_PROMISC);
#else
ptv->pd = pfring_open(ptv->interface, LIBPFRING_PROMISC, (uint32_t)default_packet_size, LIBPFRING_REENTRANT);
#endif
if (ptv->pd == NULL) {
SCLogError(SC_ERR_PF_RING_OPEN,"opening %s failed: pfring_open error",
ptv->interface);

Loading…
Cancel
Save