diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2014-03-19 23:10:34 -0700 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2014-03-19 23:10:34 -0700 |
commit | 4d0ad9abb654d3b987148f024ffeb1a04da2b574 (patch) | |
tree | 618419de22f7d80753467317dcf8eca6ec932f0f /node | |
parent | 15e8c181063ecd32b2dc2eec9185d976005e0c43 (diff) | |
download | infinitytier-4d0ad9abb654d3b987148f024ffeb1a04da2b574.tar.gz infinitytier-4d0ad9abb654d3b987148f024ffeb1a04da2b574.zip |
Fix TRACE bug and new UDP socket code issue.
Diffstat (limited to 'node')
-rw-r--r-- | node/PacketDecoder.cpp | 2 | ||||
-rw-r--r-- | node/SocketManager.cpp | 6 | ||||
-rw-r--r-- | node/UdpSocket.cpp | 12 |
3 files changed, 10 insertions, 10 deletions
diff --git a/node/PacketDecoder.cpp b/node/PacketDecoder.cpp index 59a4ee56..3f5979c5 100644 --- a/node/PacketDecoder.cpp +++ b/node/PacketDecoder.cpp @@ -609,7 +609,7 @@ bool PacketDecoder::_doMULTICAST_FRAME(const RuntimeEnvironment *_r,const Shared maxDepth = ZT_MULTICAST_GLOBAL_MAX_DEPTH; if (!network->isAllowed(origin)) { - TRACE("didn't inject MULTICAST_FRAME from %s(%s) into %.16llx: sender %s not allowed or we don't have a certificate",source().toString().c_str(),nwid,_remoteAddress.toString().c_str(),origin.toString().c_str()); + TRACE("didn't inject MULTICAST_FRAME from %s(%s) into %.16llx: sender %s not allowed or we don't have a certificate",source().toString().c_str(),_remoteAddress.toString().c_str(),nwid,origin.toString().c_str()); // Tell them we need a certificate Packet outp(source(),_r->identity.address(),Packet::VERB_ERROR); diff --git a/node/SocketManager.cpp b/node/SocketManager.cpp index 3c94f22c..c21b612f 100644 --- a/node/SocketManager.cpp +++ b/node/SocketManager.cpp @@ -422,10 +422,12 @@ void SocketManager::poll(unsigned long timeout) } } - if ((_udpV4Socket)&&(FD_ISSET(_udpV4Socket->_sock,&rfds))) + if ((_udpV4Socket)&&(FD_ISSET(_udpV4Socket->_sock,&rfds))) { _udpV4Socket->notifyAvailableForRead(_udpV4Socket,this); - if ((_udpV6Socket)&&(FD_ISSET(_udpV6Socket->_sock,&rfds))) + } + if ((_udpV6Socket)&&(FD_ISSET(_udpV6Socket->_sock,&rfds))) { _udpV6Socket->notifyAvailableForRead(_udpV6Socket,this); + } bool closedSockets = false; { // grab copy of TCP sockets list because _tcpSockets[] might be changed in a handler diff --git a/node/UdpSocket.cpp b/node/UdpSocket.cpp index 03041cf3..8730428f 100644 --- a/node/UdpSocket.cpp +++ b/node/UdpSocket.cpp @@ -93,13 +93,11 @@ bool UdpSocket::notifyAvailableForRead(const SharedPtr<Socket> &self,SocketManag { Buffer<ZT_SOCKET_MAX_MESSAGE_LEN> buf; InetAddress from; - for(;;) { - socklen_t salen = from.saddrSpaceLen(); - int n = (int)recvfrom(_sock,buf.data(),ZT_SOCKET_MAX_MESSAGE_LEN,0,from.saddr(),&salen); - if (n > 0) { - buf.setSize((unsigned int)n); - sm->handleReceivedPacket(self,from,buf); - } else break; + socklen_t salen = from.saddrSpaceLen(); + int n = (int)recvfrom(_sock,buf.data(),ZT_SOCKET_MAX_MESSAGE_LEN,0,from.saddr(),&salen); + if (n > 0) { + buf.setSize((unsigned int)n); + sm->handleReceivedPacket(self,from,buf); } return true; } |