diff --git a/src/source-pcap-file.c b/src/source-pcap-file.c index 345a3e4dea..14e07bb5a3 100644 --- a/src/source-pcap-file.c +++ b/src/source-pcap-file.c @@ -107,10 +107,15 @@ TmEcode ReceivePcapFile(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq) ptv->in_p = p; - /// Right now we just support reading packets one at a time. + /* Right now we just support reading packets one at a time. */ int r = pcap_dispatch(pcap_g.pcap_handle, 1, (pcap_handler)PcapFileCallback, (u_char *)ptv); - if (r <= 0) { - printf("ReceivePcap: code %" PRId32 " error %s\n", r, pcap_geterr(pcap_g.pcap_handle)); + if (r < 0) { + SCLogError(SC_ERR_PCAP_DISPATCH, "error code %" PRId32 " %s\n", + r, pcap_geterr(pcap_g.pcap_handle)); + EngineStop(); + return TM_ECODE_FAILED; + } else if (r == 0) { + SCLogDebug("error code %" PRId32 " %s\n", r, pcap_geterr(pcap_g.pcap_handle)); EngineStop(); return TM_ECODE_FAILED; } @@ -175,7 +180,7 @@ TmEcode ReceivePcapFileThreadInit(ThreadVars *tv, void *initdata, void **data) { break; default: - printf("Error: datalink type %" PRId32 " not yet supported in module PcapFile.\n", pcap_g.datalink); + printf("Error: datalink type %" PRId32 " not (yet) supported in module PcapFile.\n", pcap_g.datalink); free(ptv); return TM_ECODE_FAILED; } @@ -188,7 +193,7 @@ TmEcode ReceivePcapFileThreadInit(ThreadVars *tv, void *initdata, void **data) { void ReceivePcapFileThreadExitStats(ThreadVars *tv, void *data) { PcapFileThreadVars *ptv = (PcapFileThreadVars *)data; - printf(" - (%s) Packets %" PRIu32 ", bytes %" PRIu64 ".\n", tv->name, ptv->pkts, ptv->bytes); + SCLogInfo(" - (%s) Packets %" PRIu32 ", bytes %" PRIu64 ".", tv->name, ptv->pkts, ptv->bytes); return; } diff --git a/src/source-pcap.c b/src/source-pcap.c index 69e4fd8714..a464657daf 100644 --- a/src/source-pcap.c +++ b/src/source-pcap.c @@ -126,14 +126,13 @@ void PcapCallback(char *user, struct pcap_pkthdr *h, u_char *pkt) { TmEcode ReceivePcap(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq) { PcapThreadVars *ptv = (PcapThreadVars *)data; - /// Just read one packet at a time for now. + /* Just read one packet at a time for now. */ int r = 0; while (r == 0) { - //printf("ReceivePcap: call pcap_dispatch %" PRIu32 "\n", tv->flags); - r = pcap_dispatch(ptv->pcap_handle, 1, (pcap_handler)PcapCallback, (u_char *)ptv); if (r < 0) { - printf("ReceivePcap: error %s\n", pcap_geterr(ptv->pcap_handle)); + SCLogError(SC_ERR_PCAP_DISPATCH, "error code %"PRId32" %s", + r, pcap_geterr(ptv->pcap_handle)); break; } diff --git a/src/util-error.c b/src/util-error.c index 8dc97bf89f..d1a47071ef 100644 --- a/src/util-error.c +++ b/src/util-error.c @@ -87,6 +87,7 @@ const char * SCErrorToString(SCError err) CASE_CODE (SC_WARN_IPFW_UNBIND); CASE_CODE (SC_ERR_MULTIPLE_RUN_MODE); CASE_CODE (SC_ERR_BPF); + CASE_CODE (SC_ERR_PCAP_DISPATCH); default: return "UNKNOWN_ERROR"; } diff --git a/src/util-error.h b/src/util-error.h index c995b3e941..8597d5bc1c 100644 --- a/src/util-error.h +++ b/src/util-error.h @@ -108,6 +108,7 @@ typedef enum { SC_ERR_UNKNOWN_RUN_MODE, SC_ERR_MULTIPLE_RUN_MODE, SC_ERR_BPF, + SC_ERR_PCAP_DISPATCH, } SCError; const char *SCErrorToString(SCError);