#include <sys/socket.h>
#include <limits.h>
#include <string.h>
#include <errno.h>
#include "syscall.h"
#include "libc.h"

ssize_t sendmsg(int fd, const struct msghdr* msg, int flags) {
#if LONG_MAX > INT_MAX
  struct msghdr h;
  struct cmsghdr chbuf[1024 / sizeof(struct cmsghdr) + 1], *c;
  if (msg) {
    h = *msg;
    h.__pad1 = h.__pad2 = 0;
    msg = &h;
    if (h.msg_controllen) {
      if (h.msg_controllen > 1024) {
        errno = ENOMEM;
        return -1;
      }
      memcpy(chbuf, h.msg_control, h.msg_controllen);
      h.msg_control = chbuf;
      for (c = CMSG_FIRSTHDR(&h); c; c = CMSG_NXTHDR(&h, c))
        c->__pad1 = 0;
    }
  }
#endif
  return syscall_cp(SYS_sendmsg, fd, msg, flags, 0, 0, 0);
}
