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);
}
}