Rate gate requests for COM.
This commit is contained in:
parent
34b146f28b
commit
ea1da3321a
3 changed files with 22 additions and 5 deletions
|
@ -156,11 +156,14 @@ bool IncomingPacket::_doERROR(const RuntimeEnvironment *RR,const SharedPtr<Peer>
|
|||
case Packet::ERROR_NEED_MEMBERSHIP_CERTIFICATE: {
|
||||
SharedPtr<Network> network(RR->node->network(at<uint64_t>(ZT_PROTO_VERB_ERROR_IDX_PAYLOAD)));
|
||||
if ((network)&&(network->recentlyAllowedOnNetwork(peer))) {
|
||||
Packet outp(peer->address(),RR->identity.address(),Packet::VERB_NETWORK_CREDENTIALS);
|
||||
network->config().com.serialize(outp);
|
||||
outp.append((uint8_t)0);
|
||||
outp.armor(peer->key(),true);
|
||||
_path->send(RR,outp.data(),outp.size(),RR->node->now());
|
||||
const uint64_t now = RR->node->now();
|
||||
if (peer->rateGateComRequest(now)) {
|
||||
Packet outp(peer->address(),RR->identity.address(),Packet::VERB_NETWORK_CREDENTIALS);
|
||||
network->config().com.serialize(outp);
|
||||
outp.append((uint8_t)0);
|
||||
outp.armor(peer->key(),true);
|
||||
_path->send(RR,outp.data(),outp.size(),now);
|
||||
}
|
||||
}
|
||||
} break;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue