Displaying 5 results from an estimated 5 matches for "msg_hdr".
2015 Dec 10
2
[PATCH] Receive multiple packets at a time
...data(int sock) {
+ vpn_packet_t pkt[MAX_MSG];
+ sockaddr_t from[MAX_MSG];
+#ifdef HAVE_RECVMMSG
+ struct mmsghdr msg[MAX_MSG];
+ struct iovec iov[MAX_MSG];
+#else
+ socklen_t fromlen = sizeof(from[0]);
+#endif
+ int num = 1, i;
+
+#ifdef HAVE_RECVMMSG
+ for(i = 0; i < MAX_MSG; i++)
+ {
+ msg[i].msg_hdr.msg_name = &from[i].sa;
+ msg[i].msg_hdr.msg_namelen = sizeof(from[i]);
+ iov[i].iov_base = &pkt[i].seqno;
+ iov[i].iov_len = MAXSIZE;
+ msg[i].msg_hdr.msg_iov = &iov[i];
+ msg[i].msg_hdr.msg_iovlen = 1;
+ msg[i].msg_hdr.msg_control = NULL;
+ msg[i].msg_hdr.msg_controllen = 0;
+...
2015 Dec 10
3
[PATCH] Receive multiple packets at a time
..._MSG 256
>
> vpn_packet_t pkt[MAX_MSG];
> sockaddr_t from[MAX_MSG];
> struct mmsghdr msg[MAX_MSG];
> struct iovec iov[MAX_MSG];
> int num = 1, i;
>
> for(i = 0; i < MAX_MSG; i++)
> {
> msg[i].msg_hdr.msg_name = &from[i].sa;
> msg[i].msg_hdr.msg_namelen = sizeof(from[i]);
> iov[i].iov_base = &pkt[i].seqno;
> iov[i].iov_len = MAXSIZE;
> msg[i].msg_hdr.msg_iov = &iov[i];
> msg[i].msg_hdr.msg_...
2015 Dec 10
0
[PATCH] Receive multiple packets at a time
...data(int sock) {
#ifdef HAVE_RECVMMSG
#define MAX_MSG 256
vpn_packet_t pkt[MAX_MSG];
sockaddr_t from[MAX_MSG];
struct mmsghdr msg[MAX_MSG];
struct iovec iov[MAX_MSG];
int num = 1, i;
for(i = 0; i < MAX_MSG; i++)
{
msg[i].msg_hdr.msg_name = &from[i].sa;
msg[i].msg_hdr.msg_namelen = sizeof(from[i]);
iov[i].iov_base = &pkt[i].seqno;
iov[i].iov_len = MAXSIZE;
msg[i].msg_hdr.msg_iov = &iov[i];
msg[i].msg_hdr.msg_iovlen = 1;...
2015 Dec 02
5
[PATCH] Receive multiple packets at a time
...drlen = sizeof addr[0];
+#endif
node_t *from, *to;
bool direct = false;
+ int num = 1, i;
- pkt.offset = 0;
- int len = recvfrom(ls->udp.fd, DATA(&pkt), MAXSIZE, 0, &addr.sa, &addrlen);
+#ifdef HAVE_RECVMMSG
+ for (i = 0; i < MAX_MSG; i++)
+ {
+ pkt[i].offset = 0;
+ msg[i].msg_hdr.msg_name = &addr[i].sa;
+ msg[i].msg_hdr.msg_namelen = sizeof(addr[i]);
+ iov[i].iov_base = DATA(&pkt[i]);
+ iov[i].iov_len = MAXSIZE;
+ msg[i].msg_hdr.msg_iov = &iov[i];
+ msg[i].msg_hdr.msg_iovlen = 1;
+ msg[i].msg_hdr.msg_control = NULL;
+ msg[i].msg_hdr.msg_controllen = 0;
+...
2015 Dec 02
0
[PATCH] Receive multiple packets at a time
...1, i;
>
> - pkt.offset = 0;
> - int len = recvfrom(ls->udp.fd, DATA(&pkt), MAXSIZE, 0, &addr.sa, &addrlen);
> +#ifdef HAVE_RECVMMSG
> + for (i = 0; i < MAX_MSG; i++)
> + {
> + pkt[i].offset = 0;
> + msg[i].msg_hdr.msg_name = &addr[i].sa;
> + msg[i].msg_hdr.msg_namelen = sizeof(addr[i]);
> + iov[i].iov_base = DATA(&pkt[i]);
> + iov[i].iov_len = MAXSIZE;
> + msg[i].msg_hdr.msg_iov = &iov[i];
> + msg[i].msg_hdr.msg_...