search for: sockerrno

Displaying 7 results from an estimated 7 matches for "sockerrno".

2015 Dec 10
2
[PATCH] Receive multiple packets at a time
...ket(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 = lookup_node_...
2015 Dec 10
0
[PATCH] Receive multiple packets at a time
...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 > MAXSIZE...
2015 Dec 02
5
[PATCH] Receive multiple packets at a time
...t;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 = lookup_no...
2010 Sep 20
0
No subject
...its =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 origlen - 1; dif...
2015 Dec 02
0
[PATCH] Receive multiple packets at a time
...nt 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...
2016 Oct 05
3
Dev: new option to mark all tincd socket of a tincd process
I know i'm new to the list but i'd like to propose something for tincd daemon. I'd like to mark all sockets established by a tincd process with a mark passed as an argument in the command line. What could be the purpose of this new option? The goal of this option is to be able to have several tincd process running at the same time using the same port but using different ip. In
2011 Jan 03
1
Tinc improvements
...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))