diff options
Diffstat (limited to 'node')
-rw-r--r-- | node/PacketDecoder.cpp | 18 | ||||
-rw-r--r-- | node/SocketManager.cpp | 2 |
2 files changed, 18 insertions, 2 deletions
diff --git a/node/PacketDecoder.cpp b/node/PacketDecoder.cpp index 3f5979c5..c638f094 100644 --- a/node/PacketDecoder.cpp +++ b/node/PacketDecoder.cpp @@ -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 diff --git a/node/SocketManager.cpp b/node/SocketManager.cpp index c2261e7a..9539af38 100644 --- a/node/SocketManager.cpp +++ b/node/SocketManager.cpp @@ -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); } } |