summaryrefslogtreecommitdiff
path: root/node
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2014-03-19 23:10:34 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2014-03-19 23:10:34 -0700
commit4d0ad9abb654d3b987148f024ffeb1a04da2b574 (patch)
tree618419de22f7d80753467317dcf8eca6ec932f0f /node
parent15e8c181063ecd32b2dc2eec9185d976005e0c43 (diff)
downloadinfinitytier-4d0ad9abb654d3b987148f024ffeb1a04da2b574.tar.gz
infinitytier-4d0ad9abb654d3b987148f024ffeb1a04da2b574.zip
Fix TRACE bug and new UDP socket code issue.
Diffstat (limited to 'node')
-rw-r--r--node/PacketDecoder.cpp2
-rw-r--r--node/SocketManager.cpp6
-rw-r--r--node/UdpSocket.cpp12
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;
}