diff --git a/src/pipe.c b/src/pipe.c index f3196545b..600828c50 100644 --- a/src/pipe.c +++ b/src/pipe.c @@ -107,6 +107,7 @@ static void usage() static void * send_loop(void *ctx) { + unsigned last_sequenceno = 0; int ret, scanned, sent, ready, cnt = 0; struct sample *smps[node->vectorize]; @@ -130,6 +131,14 @@ static void * send_loop(void *ctx) else if (scanned == 0) continue; + /* Fill in missing sequence numbers */ + for (int i = 0; i < scanned; i++) { + if (smps[i]->flags & SAMPLE_HAS_SEQUENCE) + last_sequenceno = smps[i]->sequence; + else + smps[i]->sequence = last_sequenceno++; + } + sent = node_write(node, smps, scanned); if (sent < 0) { warn("Failed to sent samples to node %s: reason=%d", node_name(node), sent);