24 _input_nmsg_read_null(nmsg_input_t input __attribute__((unused)),
25 nmsg_message_t *msg __attribute__((unused)))
31 _input_nmsg_loop_null(nmsg_input_t input __attribute__((unused)),
32 int cnt __attribute__((unused)),
34 void *user __attribute__((unused)))
43 struct timespec *ts, nmsg_message_t **msgarray,
size_t *n_msg)
48 assert(input->stream->type == nmsg_stream_type_null);
52 memcpy(&input->stream->now, ts,
sizeof(*ts));
57 res = _input_nmsg_deserialize_header(buf, buf_len, &msgsize, &input->stream->flags);
67 res = _input_nmsg_unpack_container(input, &input->stream->nmsg, buf, msgsize);
70 _input_frag_gc(input->stream);
73 if (input->stream->nmsg != NULL) {
76 *msgarray = malloc(input->stream->nmsg->n_payloads *
sizeof(
void *));
77 if (*msgarray == NULL) {
78 nmsg__nmsg__free_unpacked(input->stream->nmsg, NULL);
79 input->stream->nmsg = NULL;
82 *n_msg = input->stream->nmsg->n_payloads;
84 for (
unsigned i = 0; i < input->stream->nmsg->n_payloads; i++) {
85 Nmsg__NmsgPayload *np;
89 np = input->stream->nmsg->payloads[i];
90 input->stream->nmsg->payloads[i] = NULL;
93 if (!_input_nmsg_filter(input, i, np)) {
94 _nmsg_payload_free(&np);
100 msg = _nmsg_message_from_payload(np);
105 nmsg__nmsg__free_unpacked(input->stream->nmsg, NULL);
106 input->stream->nmsg = NULL;
109 (*msgarray)[msgarray_idx] = msg;
113 input->stream->nmsg->n_payloads = 0;
114 free(input->stream->nmsg->payloads);
115 input->stream->nmsg->payloads = NULL;
116 nmsg__nmsg__free_unpacked(input->stream->nmsg, NULL);
117 input->stream->nmsg = NULL;
void nmsg_timespec_get(struct timespec *ts)
Get the current time.
void(* nmsg_cb_message)(nmsg_message_t msg, void *user)
Callback function for processing nmsg messages.
#define NMSG_HDRLSZ_V2
Number of octets in an NMSG header (magic + version + length).