search for: sockwouldblock

Displaying 6 results from an estimated 6 matches for "sockwouldblock".

2015 Dec 10
2
[PATCH] Receive multiple packets at a time
...ncoming_vpn_packet(int sock, vpn_packet_t *pkt, sockaddr_t *from) { char *hostname; - sockaddr_t from; - socklen_t fromlen = sizeof(from); node_t *n; - pkt.len = recvfrom(listen_socket[sock].udp, (char *) &pkt.seqno, MAXSIZE, 0, &from.sa, &fromlen); - - if(pkt.len < 0) { - if(!sockwouldblock(sockerrno)) - logger(LOG_ERR, "Receiving packet failed: %s", sockstrerror(sockerrno)); - return; - } - - sockaddrunmap(&from); /* Some braindead IPv6 implementations do stupid things. */ + sockaddrunmap(from); /* Some braindead IPv6 implementations do stupid things. */ - n = lo...
2015 Dec 10
0
[PATCH] Receive multiple packets at a time
...i]; msg[i].msg_hdr.msg_iovlen = 1; msg[i].msg_hdr.msg_control = NULL; msg[i].msg_hdr.msg_controllen = 0; } num = recvmmsg(listen_socket[sock].udp, msg, MAX_MSG, MSG_DONTWAIT, NULL); if(num < 0) { if(!sockwouldblock(sockerrno)) logger(LOG_ERR, "Receiving packet failed: %s", sockstrerror(sockerrno)); return; } for(i = 0; i < num; i++) { pkt[i].len = msg[i].msg_len; if(pkt[i].len <= 0 || pkt[i].len &g...
2015 Dec 02
5
[PATCH] Receive multiple packets at a time
...recvmmsg(ls->udp.fd, msg, MAX_MSG, MSG_DONTWAIT, NULL); +#else + pkt[0].offset = 0; + int len = recvfrom(ls->udp.fd, DATA(&pkt[0]), MAXSIZE, 0, &addr[0].sa, &addrlen); +#endif + +#ifdef HAVE_RECVMMSG + if(num < 0) +#else + if(len <= 0 || len > MAXSIZE) +#endif + { if(!sockwouldblock(sockerrno)) logger(DEBUG_ALWAYS, LOG_ERR, "Receiving packet failed: %s", sockstrerror(sockerrno)); return; } - pkt.len = len; - - sockaddrunmap(&addr); /* Some braindead IPv6 implementations do stupid things. */ - - // Try to figure out who sent this packet. - - node_t *n =...
2010 Sep 20
0
No subject
...npkt->flag_bits =3D htonl(inpkt->flag_bits); =20 /* Determine which socket we have to use */ =20 @@ -506,7 +519,7 @@ } #endif =20 - if(sendto(listen_socket[sock].udp, (char *) &inpkt->seqno, inpkt->len, = 0, &(n->address.sa), SALEN(n->address.sa)) < 0 && = !sockwouldblock(sockerrno)) { + if(sendto(listen_socket[sock].udp, (char *) &inpkt->flags, inpkt->len, = 0, &(n->address.sa), SALEN(n->address.sa)) < 0 && = !sockwouldblock(sockerrno)) { if(sockmsgsize(sockerrno)) { if(n->maxmtu >=3D origlen) n->maxmtu =3D origle...
2015 Dec 02
0
[PATCH] Receive multiple packets at a time
...> + int len = recvfrom(ls->udp.fd, DATA(&pkt[0]), MAXSIZE, 0, &addr[0].sa, &addrlen); > +#endif > + > +#ifdef HAVE_RECVMMSG > + if(num < 0) > +#else > + if(len <= 0 || len > MAXSIZE) > +#endif > + { > if(!sockwouldblock(sockerrno)) > logger(DEBUG_ALWAYS, LOG_ERR, "Receiving packet failed: %s", sockstrerror(sockerrno)); > return; > } > > - pkt.len = len; > - > - sockaddrunmap(&addr); /* Some braindead IPv6 implementations...
2011 Jan 03
1
Tinc improvements
...nt sock) { @@ -606,7 +615,7 @@ socklen_t fromlen = sizeof(from); node_t *n; - pkt.len = recvfrom(sock, (char *) &pkt.seqno, MAXSIZE, 0, &from.sa, &fromlen); + pkt.len = recvfrom(sock, (char *) &pkt.flags, MAXSIZE, 0, &from.sa, &fromlen); if(pkt.len < 0) { if(!sockwouldblock(sockerrno))