Fix TRACE bug and new UDP socket code issue.

This commit is contained in:
Adam Ierymenko 2014-03-19 23:10:34 -07:00
parent 15e8c18106
commit 4d0ad9abb6
3 changed files with 10 additions and 10 deletions

View File

@ -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);

View File

@ -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

View File

@ -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;
}
return true;
}