/* Copyright (c) 2015-2016 Google Inc.
 * Barret Rhoden <brho@cs.berkeley.edu>
 * See LICENSE for details.
 *
 * sendmsg(), on top of sendto(). */

#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>

/* In sendto.c */
ssize_t __sendto_iov(int fd, const struct iovec *iov, int iovcnt,
                     int flags, __CONST_SOCKADDR_ARG to, socklen_t tolen);

/* Send a message described MSG on socket FD.  Returns the number of bytes
 * sent, or -1 for errors.  */
ssize_t __sendmsg(int fd, const struct msghdr *msg, int flags)
{
	return __sendto_iov(fd, msg->msg_iov, msg->msg_iovlen, flags, msg->msg_name,
	                    msg->msg_namelen);
}
weak_alias(__sendmsg, sendmsg)
