#include "system/network.h"
#include "dlinklist.h"
#include "pthreadpool/pthreadpool.h"
+#include "lib/iov_buf.h"
#include <fcntl.h>
/*
char path[];
};
-static ssize_t iov_buflen(const struct iovec *iov, int iovlen);
static void unix_dgram_recv_handler(struct poll_watch *w, int fd, short events,
void *private_data);
}
#endif /* HAVE_STRUCT_MSGHDR_MSG_CONTROL */
- for (i=0; i<iovlen; i++) {
- memcpy(data_buf, iov[i].iov_base, iov[i].iov_len);
- data_buf += iov[i].iov_len;
- }
+ iov_buf(iov, iovlen, data_buf, data_len);
DLIST_ADD_END(q->msgs, msg, struct unix_dgram_msg);
return 0;
free(ctx);
return 0;
}
-
-static ssize_t iov_buflen(const struct iovec *iov, int iovlen)
-{
- size_t buflen = 0;
- int i;
-
- for (i=0; i<iovlen; i++) {
- size_t thislen = iov[i].iov_len;
- size_t tmp = buflen + thislen;
-
- if ((tmp < buflen) || (tmp < thislen)) {
- /* overflow */
- return -1;
- }
- buflen = tmp;
- }
- return buflen;
-}
bld.SAMBA3_SUBSYSTEM('UNIX_MSG',
source='unix_msg.c',
- deps='replace PTHREADPOOL')
+ deps='replace PTHREADPOOL iov_buf')
bld.SAMBA3_BINARY('unix_msg_test',
source='tests.c',