mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-19 13:07:55 +00:00
Yank PROBE stuff since it's not used and was a premature addition to the protocol.
This commit is contained in:
parent
ffffc0179f
commit
8b65b3e6d7
@ -48,7 +48,6 @@ const char *Packet::verbString(Verb v)
|
||||
case VERB_NETWORK_MEMBERSHIP_CERTIFICATE: return "NETWORK_MEMBERSHIP_CERTIFICATE";
|
||||
case VERB_NETWORK_CONFIG_REQUEST: return "NETWORK_CONFIG_REQUEST";
|
||||
case VERB_NETWORK_CONFIG_REFRESH: return "NETWORK_CONFIG_REFRESH";
|
||||
case VERB_PROBE: return "PROBE";
|
||||
}
|
||||
return "(unknown)";
|
||||
}
|
||||
|
@ -225,16 +225,6 @@
|
||||
#define ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT_LEN (ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_NETWORK_ID + 8)
|
||||
#define ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT (ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT_LEN + 2)
|
||||
|
||||
#define ZT_PROTO_VERB_PROBE_IDX_TIMESTAMP (ZT_PACKET_IDX_PAYLOAD)
|
||||
#define ZT_PROTO_VERB_PROBE_LEN_TIMESTAMP 8
|
||||
#define ZT_PROTO_VERB_PROBE_IDX_MS_SINCE_LAST_SEND (ZT_PROTO_VERB_PROBE_IDX_TIMESTAMP + ZT_PROTO_VERB_PROBE_LEN_TIMESTAMP)
|
||||
#define ZT_PROTO_VERB_PROBE_LEN_MS_SINCE_LAST_SEND 8
|
||||
|
||||
#define ZT_PROTO_VERB_PROBE__OK__IDX_TIMESTAMP (ZT_PACKET_IDX_PAYLOAD)
|
||||
#define ZT_PROTO_VERB_PROBE__OK__LEN_TIMESTAMP 8
|
||||
#define ZT_PROTO_VERB_PROBE__OK__IDX_MS_SINCE_LAST_SEND (ZT_PROTO_VERB_PROBE_IDX_TIMESTAMP + ZT_PROTO_VERB_PROBE_LEN_TIMESTAMP)
|
||||
#define ZT_PROTO_VERB_PROBE__OK__LEN_MS_SINCE_LAST_SEND 8
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
namespace ZeroTier {
|
||||
@ -621,28 +611,7 @@ public:
|
||||
* It does not generate an OK or ERROR message, and is treated only as
|
||||
* a hint to refresh now.
|
||||
*/
|
||||
VERB_NETWORK_CONFIG_REFRESH = 12,
|
||||
|
||||
/* Probe peer connection status:
|
||||
* <[8] 64-bit timestamp>
|
||||
* <[8] 64-bit milliseconds since last send to this peer>
|
||||
*
|
||||
* This message is sent to probe the status of a peer and to confirm
|
||||
* new link-layer addresses. Upon receipt an OK is generated which
|
||||
* echoes the time and responds with the number of milliseconds since
|
||||
* the recipient has last sent a packet to the sender.
|
||||
*
|
||||
* Using these delay times, a peer may determine if its current route
|
||||
* to another peer is likely dead and default to another route (e.g.
|
||||
* reverting to relaying).
|
||||
*
|
||||
* OK response payload:
|
||||
* <[8] 64-bit timestamp echoed from request>
|
||||
* <[8] 64-bit milliseconds since last send to requesitng peer>
|
||||
*
|
||||
* ERROR is not generated.
|
||||
*/
|
||||
VERB_PROBE = 13
|
||||
VERB_NETWORK_CONFIG_REFRESH = 12
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -106,8 +106,6 @@ bool PacketDecoder::tryDecode(const RuntimeEnvironment *_r)
|
||||
return _doNETWORK_CONFIG_REQUEST(_r,peer);
|
||||
case Packet::VERB_NETWORK_CONFIG_REFRESH:
|
||||
return _doNETWORK_CONFIG_REFRESH(_r,peer);
|
||||
case Packet::VERB_PROBE:
|
||||
return _doPROBE(_r,peer);
|
||||
default:
|
||||
// This might be something from a new or old version of the protocol.
|
||||
// Technically it passed MAC so the packet is still valid, but we
|
||||
@ -934,23 +932,4 @@ bool PacketDecoder::_doNETWORK_CONFIG_REFRESH(const RuntimeEnvironment *_r,const
|
||||
return true;
|
||||
}
|
||||
|
||||
bool PacketDecoder::_doPROBE(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer)
|
||||
{
|
||||
try {
|
||||
uint64_t ts = at<uint64_t>(ZT_PROTO_VERB_PROBE_IDX_TIMESTAMP);
|
||||
//uint64_t msSinceLastSend = at<uint64_t>(ZT_PROTO_VERB_PROBE_IDX_MS_SINCE_LAST_SEND);
|
||||
Packet outp(source(),_r->identity.address(),Packet::VERB_OK);
|
||||
outp.append((unsigned char)Packet::VERB_PROBE);
|
||||
outp.append(ts);
|
||||
outp.append(peer->lastDirectSend()); // FIXME: need to refactor to also track relayed sends
|
||||
outp.armor(peer->key(),true);
|
||||
_r->demarc->send(_localPort,_remoteAddress,outp.data(),outp.size(),-1);
|
||||
} catch (std::exception &exc) {
|
||||
TRACE("dropped PROBE from %s(%s): unexpected exception: %s",source().toString().c_str(),_remoteAddress.toString().c_str(),exc.what());
|
||||
} catch ( ... ) {
|
||||
TRACE("dropped PROBE from %s(%s): unexpected exception: (unknown)",source().toString().c_str(),_remoteAddress.toString().c_str());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace ZeroTier
|
||||
|
@ -122,7 +122,6 @@ private:
|
||||
bool _doNETWORK_MEMBERSHIP_CERTIFICATE(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer);
|
||||
bool _doNETWORK_CONFIG_REQUEST(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer);
|
||||
bool _doNETWORK_CONFIG_REFRESH(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer);
|
||||
bool _doPROBE(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer);
|
||||
|
||||
uint64_t _receiveTime;
|
||||
Demarc::Port _localPort;
|
||||
|
@ -225,20 +225,6 @@ bool Switch::sendHELLO(const SharedPtr<Peer> &dest,Demarc::Port localPort,const
|
||||
} else return false;
|
||||
}
|
||||
|
||||
bool Switch::sendPROBE(const SharedPtr<Peer> &dest,Demarc::Port localPort,const InetAddress &remoteAddr)
|
||||
{
|
||||
uint64_t now = Utils::now();
|
||||
Packet outp(dest->address(),_r->identity.address(),Packet::VERB_PROBE);
|
||||
outp.append(now);
|
||||
outp.append(dest->lastDirectSend()); // FIXME: need to refactor to also track relayed sends
|
||||
outp.armor(dest->key(),true);
|
||||
|
||||
if (_r->demarc->send(localPort,remoteAddr,outp.data(),outp.size(),-1)) {
|
||||
dest->expectResponseTo(outp.packetId(),Packet::VERB_PROBE,localPort,now);
|
||||
return true;
|
||||
} else return false;
|
||||
}
|
||||
|
||||
bool Switch::unite(const Address &p1,const Address &p2,bool force)
|
||||
{
|
||||
if ((p1 == _r->identity.address())||(p2 == _r->identity.address()))
|
||||
|
@ -129,16 +129,6 @@ public:
|
||||
*/
|
||||
bool sendHELLO(const SharedPtr<Peer> &dest,Demarc::Port localPort,const InetAddress &remoteAddr);
|
||||
|
||||
/**
|
||||
* Send a PROBE immediately to the indicated address
|
||||
*
|
||||
* @param localPort Originating local port or ANY_PORT to pick
|
||||
* @param remoteAddr IP address to send to
|
||||
* @param dest Destination peer
|
||||
* @return True if send appears successful
|
||||
*/
|
||||
bool sendPROBE(const SharedPtr<Peer> &dest,Demarc::Port localPort,const InetAddress &remoteAddr);
|
||||
|
||||
/**
|
||||
* Send RENDEZVOUS to two peers to permit them to directly connect
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user