diff --git a/src/source-af-packet.c b/src/source-af-packet.c index c03ce750fc..4604a370cc 100644 --- a/src/source-af-packet.c +++ b/src/source-af-packet.c @@ -301,7 +301,7 @@ int AFPRead(AFPThreadVars *ptv) } else if (ptv->checksum_mode == CHECKSUM_VALIDATION_AUTO) { if (ptv->livedev->ignore_checksum) { p->flags |= PKT_IGNORE_CHECKSUM; - } else if (ChecksumAutoModeSwitch(ptv->pkts, + } else if (ChecksumAutoModeCheck(ptv->pkts, SC_ATOMIC_GET(ptv->livedev->pkts), SC_ATOMIC_GET(ptv->livedev->invalid_checksums))) { ptv->livedev->ignore_checksum = 1; @@ -548,12 +548,9 @@ static int AFPCreateSocket(AFPThreadVars *ptv, char *devname, int verbose) int val = 1; if (setsockopt(ptv->socket, SOL_PACKET, PACKET_AUXDATA, &val, sizeof(val)) == -1 && errno != ENOPROTOOPT) { - SCLogError(SC_ERR_AFP_CREATE, - "Couldn't active auxdata on iface %s, error %s", - devname, - strerror(errno)); - close(ptv->socket); - return -1; + SCLogWarning(SC_ERR_NO_AF_PACKET, + "'kernel' checksum mode not supported, failling back to full mode."); + ptv->checksum_mode = CHECKSUM_VALIDATION_ENABLE; } }