diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2013-09-13 13:35:31 -0400 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2013-09-13 13:35:31 -0400 |
commit | d87a1d6b99e8952b4862cf6dc5965f6b5b54bc85 (patch) | |
tree | 71e2b7ebafe05eaa98737977f2a754133ec22dcd | |
parent | 07e1085dccb55b75816faa2c2f4a66c42713f6cc (diff) | |
download | infinitytier-d87a1d6b99e8952b4862cf6dc5965f6b5b54bc85.tar.gz infinitytier-d87a1d6b99e8952b4862cf6dc5965f6b5b54bc85.zip |
Add version info to OK(HELLO) so both sides know their version info.
-rw-r--r-- | node/Packet.hpp | 4 | ||||
-rw-r--r-- | node/PacketDecoder.cpp | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/node/Packet.hpp b/node/Packet.hpp index 3ee8fb53..28b7551d 100644 --- a/node/Packet.hpp +++ b/node/Packet.hpp @@ -374,6 +374,10 @@ public: * * OK payload: * <[8] timestamp (echoed from original HELLO)> + * <[1] protocol version> + * <[1] software major version> + * <[1] software minor version> + * <[2] software revision> * * ERROR has no payload. */ diff --git a/node/PacketDecoder.cpp b/node/PacketDecoder.cpp index 13937a52..67f70554 100644 --- a/node/PacketDecoder.cpp +++ b/node/PacketDecoder.cpp @@ -151,11 +151,14 @@ void PacketDecoder::_CBaddPeerFromHello(void *arg,const SharedPtr<Peer> &p,Topol case Topology::PEER_VERIFY_ACCEPTED_ALREADY_HAVE: case Topology::PEER_VERIFY_ACCEPTED_DISPLACED_INVALID_ADDRESS: { _r->sw->doAnythingWaitingForPeer(p); - Packet outp(req->source,_r->identity.address(),Packet::VERB_OK); outp.append((unsigned char)Packet::VERB_HELLO); outp.append(req->helloPacketId); outp.append(req->helloTimestamp); + outp.append((unsigned char)ZT_PROTO_VERSION); + outp.append((unsigned char)ZEROTIER_ONE_VERSION_MAJOR); + outp.append((unsigned char)ZEROTIER_ONE_VERSION_MINOR); + outp.append((uint16_t)ZEROTIER_ONE_VERSION_REVISION); outp.encrypt(p->cryptKey()); outp.hmacSet(p->macKey()); _r->demarc->send(req->localPort,req->remoteAddress,outp.data(),outp.size(),-1); |