static void reinit_mmsghdr_vec()

in listener.c [70:93]


static void reinit_mmsghdr_vec(struct mmsghdr *vec, int nr, int rcvbufsz)
{
	struct msg_buf *cur;
	int i;

	memset(vec, 0, sizeof(*vec) * nr);
	for (i = 0; i < nr; i++) {
		cur = malloc(sizeof(*cur) + rcvbufsz);
		if (!cur)
			fatal("-ENOMEM after %d/%d rcvbufs\n", i, nr);

		memset(cur, 0, sizeof(*cur));
		cur->buf[rcvbufsz - 1] = '\0';

		cur->iovec.iov_base = &cur->buf;
		cur->iovec.iov_len = rcvbufsz - 1;

		vec[i].msg_hdr.msg_iov = &cur->iovec;
		vec[i].msg_hdr.msg_iovlen = 1;

		vec[i].msg_hdr.msg_name = &cur->src;
		vec[i].msg_hdr.msg_namelen = sizeof(cur->src);
	}
}