SCReturnInt(AFP_READ_OK);
}
+#ifdef HAVE_TPACKET_V3
static inline void AFPFlushBlock(struct tpacket_block_desc *pbd)
{
pbd->hdr.bh1.block_status = TP_STATUS_KERNEL;
SCReturnInt(AFP_READ_OK);
}
+#endif /* HAVE_TPACKET_V3 */
/**
* \brief AF packet read function for ring
return 1;
}
+#ifdef HAVE_TPACKET_V3
if (ptv->flags & AFP_TPACKET_V3) {
struct tpacket_block_desc *pbd;
pbd = (struct tpacket_block_desc *) ptv->ring_v3[ptv->frame_offset].iov_base;
AFPFlushBlock(pbd);
ptv->frame_offset = (ptv->frame_offset + 1) % ptv->req3.tp_block_nr;
return 1;
- } else {
+
+ } else
+#endif
+ {
/* Read packet from ring */
h.raw = (((union thdr **)ptv->ring_v2)[ptv->frame_offset]);
if (h.raw == NULL) {
#ifdef HAVE_TPACKET_V3
if (ptv->flags & AFP_TPACKET_V3) {
val = TPACKET_V3;
- } else {
+ } else
#endif
+ {
val = TPACKET_V2;
-#ifdef HAVE_TPACKET_V3
}
-#endif
if (getsockopt(ptv->socket, SOL_PACKET, PACKET_HDRLEN, &val, &len) < 0) {
if (errno == ENOPROTOOPT) {
if (ptv->flags & AFP_TPACKET_V3) {
return AFP_FATAL_ERROR;
}
+ val = TPACKET_V2;
+#ifdef HAVE_TPACKET_V3
if (ptv->flags & AFP_TPACKET_V3) {
val = TPACKET_V3;
- } else {
- val = TPACKET_V2;
}
+#endif
if (setsockopt(ptv->socket, SOL_PACKET, PACKET_VERSION, &val,
sizeof(val)) < 0) {
SCLogError(SC_ERR_AFP_CREATE,