mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-02-20 17:52:46 +00:00
More deadlock fixes in new I/O.
This commit is contained in:
parent
6f5a4d7e29
commit
7a45ff460d
@ -41,6 +41,7 @@
|
||||
#include "NodeConfig.hpp"
|
||||
#include "Service.hpp"
|
||||
#include "SoftwareUpdater.hpp"
|
||||
#include "SHA512.hpp"
|
||||
|
||||
namespace ZeroTier {
|
||||
|
||||
@ -50,7 +51,7 @@ bool PacketDecoder::tryDecode(const RuntimeEnvironment *_r)
|
||||
// Unencrypted HELLOs are handled here since they are used to
|
||||
// populate our identity cache in the first place. _doHELLO() is special
|
||||
// in that it contains its own authentication logic.
|
||||
TRACE("<< HELLO from %s(%s) (normal unencrypted HELLO)",source().toString().c_str(),_remoteAddress.toString().c_str());
|
||||
//TRACE("<< HELLO from %s(%s) (normal unencrypted HELLO)",source().toString().c_str(),_remoteAddress.toString().c_str());
|
||||
return _doHELLO(_r);
|
||||
}
|
||||
|
||||
@ -77,7 +78,7 @@ bool PacketDecoder::tryDecode(const RuntimeEnvironment *_r)
|
||||
return true;
|
||||
}
|
||||
|
||||
TRACE("<< %s from %s(%s)",Packet::verbString(verb()),source().toString().c_str(),_remoteAddress.toString().c_str());
|
||||
//TRACE("<< %s from %s(%s)",Packet::verbString(verb()),source().toString().c_str(),_remoteAddress.toString().c_str());
|
||||
|
||||
switch(verb()) {
|
||||
case Packet::VERB_NOP:
|
||||
@ -489,6 +490,19 @@ bool PacketDecoder::_doMULTICAST_FRAME(const RuntimeEnvironment *_r,const Shared
|
||||
const unsigned int signatureLen = at<uint16_t>(ZT_PROTO_VERB_MULTICAST_FRAME_IDX_FRAME + frameLen);
|
||||
const unsigned char *const signature = field(ZT_PROTO_VERB_MULTICAST_FRAME_IDX_FRAME + frameLen + 2,signatureLen);
|
||||
|
||||
/*
|
||||
TRACE("MULTICAST_FRAME %d bytes guid#%.16llx from %s(%s) to %s on network %.16llx",(int)frameLen,(unsigned long long)guid,sourceMac.toString().c_str(),origin.toString().c_str(),dest.toString().c_str(),(unsigned long long)nwid);
|
||||
TRACE(" received from upstream peer: %s(%s)",source().toString().c_str(),_remoteAddress.toString().c_str());
|
||||
TRACE(" restrict prefix: %.8lx / %d",(unsigned long)prefix,(int)prefixBits);
|
||||
TRACE(" ethernet type: %.4x(%s)",etherType,Switch::etherTypeName(etherType));
|
||||
TRACE(" signature length: %d",(int)signatureLen);
|
||||
{
|
||||
unsigned char h[64];
|
||||
SHA512::hash(h,frame,frameLen);
|
||||
TRACE(" frame data SHA-512: %s",Utils::hex(h,64).c_str());
|
||||
}
|
||||
*/
|
||||
|
||||
SharedPtr<Network> network(_r->nc->network(nwid));
|
||||
|
||||
/* Grab, verify, and learn certificate of network membership if any -- provided we are
|
||||
|
@ -266,6 +266,7 @@ SocketManager::SocketManager(
|
||||
}
|
||||
|
||||
_udpV6Socket = SharedPtr<Socket>(new UdpSocket(Socket::ZT_SOCKET_TYPE_UDP_V6,s));
|
||||
fcntl(s,F_SETFL,O_NONBLOCK);
|
||||
FD_SET(s,&_readfds);
|
||||
}
|
||||
|
||||
@ -316,6 +317,7 @@ SocketManager::SocketManager(
|
||||
}
|
||||
|
||||
_udpV4Socket = SharedPtr<Socket>(new UdpSocket(Socket::ZT_SOCKET_TYPE_UDP_V4,s));
|
||||
fcntl(s,F_SETFL,O_NONBLOCK);
|
||||
FD_SET(s,&_readfds);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user