endace: Fix source-dag timestamps

Bug: #6618.

Fix Endace ERF to SCTime_t timestamp conversion

Fix typo preventing compilation with --enable-dag
pull/10047/head
Stephen Donnelly 3 years ago committed by Victor Julien
parent 3456dea276
commit 879db3dbc3

@ -186,7 +186,7 @@ ReceiveErfDagThreadInit(ThreadVars *tv, void *initdata, void **data)
SCReturnInt(TM_ECODE_FAILED);
}
ErfDagThreadVars *ewtn = SCMClloc(1, sizeof(ErfDagThreadVars));
ErfDagThreadVars *ewtn = SCCalloc(1, sizeof(ErfDagThreadVars));
if (unlikely(ewtn == NULL)) {
FatalError("Failed to allocate memory for ERF DAG thread vars.");
}
@ -506,17 +506,13 @@ ProcessErfDagRecord(ErfDagThreadVars *ewtn, char *prec)
SCReturnInt(TM_ECODE_FAILED);
}
/* Convert ERF time to timeval - from libpcap. */
/* Convert ERF time to SCTime_t */
uint64_t ts = dr->ts;
p->ts = SCTIME_FROM_SECS(ts >> 32);
ts = (ts & 0xffffffffULL) * 1000000;
ts += 0x80000000; /* rounding */
uint64_t usecs = ts >> 32;
if (usecs >= 1000000) {
usecs -= 1000000;
p->ts += SCTIME_FROM_SECS(1);
}
p->ts += SCTIME_FROM_USECS(usecs);
p->ts = SCTIME_ADD_USECS(p->ts, usecs);
StatsIncr(ewtn->tv, ewtn->packets);
ewtn->bytes += wlen;

@ -195,17 +195,12 @@ static inline TmEcode ReadErfRecord(ThreadVars *tv, Packet *p, void *data)
GET_PKT_LEN(p) = wlen;
p->datalink = LINKTYPE_ETHERNET;
/* Convert ERF time to timeval - from libpcap. */
/* Convert ERF time to SCTime_t */
uint64_t ts = dr.ts;
p->ts = SCTIME_FROM_SECS(ts >> 32);
ts = (ts & 0xffffffffULL) * 1000000;
ts += 0x80000000; /* rounding */
uint64_t usecs = (ts >> 32);
if (usecs >= 1000000) {
usecs -= 1000000;
p->ts = SCTIME_ADD_SECS(p->ts, 1);
usecs++;
}
p->ts = SCTIME_ADD_USECS(p->ts, usecs);
etv->pkts++;

Loading…
Cancel
Save