mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-06-01 15:00:54 +00:00
.
This commit is contained in:
parent
64bf3ffe6c
commit
53e5f94b99
@ -67,24 +67,6 @@ Peer::Peer(const Identity &myIdentity,const Identity &peerIdentity)
|
|||||||
throw std::runtime_error("new peer identity key agreement failed");
|
throw std::runtime_error("new peer identity key agreement failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
struct _SortPathsByQuality
|
|
||||||
{
|
|
||||||
uint64_t _now;
|
|
||||||
_SortPathsByQuality(const uint64_t now) : _now(now) {}
|
|
||||||
inline bool operator()(const RemotePath &a,const RemotePath &b) const
|
|
||||||
{
|
|
||||||
const uint64_t qa = (
|
|
||||||
((uint64_t)a.active(_now) << 63) |
|
|
||||||
(((uint64_t)(a.preferenceRank() & 0xfff)) << 51) |
|
|
||||||
((uint64_t)a.lastReceived() & 0x7ffffffffffffULL) );
|
|
||||||
const uint64_t qb = (
|
|
||||||
((uint64_t)b.active(_now) << 63) |
|
|
||||||
(((uint64_t)(b.preferenceRank() & 0xfff)) << 51) |
|
|
||||||
((uint64_t)b.lastReceived() & 0x7ffffffffffffULL) );
|
|
||||||
return (qb < qa); // invert sense to sort in descending order
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
void Peer::received(
|
void Peer::received(
|
||||||
const RuntimeEnvironment *RR,
|
const RuntimeEnvironment *RR,
|
||||||
const InetAddress &localAddr,
|
const InetAddress &localAddr,
|
||||||
@ -511,6 +493,23 @@ void Peer::clean(const RuntimeEnvironment *RR,uint64_t now)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct _SortPathsByQuality
|
||||||
|
{
|
||||||
|
uint64_t _now;
|
||||||
|
_SortPathsByQuality(const uint64_t now) : _now(now) {}
|
||||||
|
inline bool operator()(const RemotePath &a,const RemotePath &b) const
|
||||||
|
{
|
||||||
|
const uint64_t qa = (
|
||||||
|
((uint64_t)a.active(_now) << 63) |
|
||||||
|
(((uint64_t)(a.preferenceRank() & 0xfff)) << 51) |
|
||||||
|
((uint64_t)a.lastReceived() & 0x7ffffffffffffULL) );
|
||||||
|
const uint64_t qb = (
|
||||||
|
((uint64_t)b.active(_now) << 63) |
|
||||||
|
(((uint64_t)(b.preferenceRank() & 0xfff)) << 51) |
|
||||||
|
((uint64_t)b.lastReceived() & 0x7ffffffffffffULL) );
|
||||||
|
return (qb < qa); // invert sense to sort in descending order
|
||||||
|
}
|
||||||
|
};
|
||||||
void Peer::_sortPaths(const uint64_t now)
|
void Peer::_sortPaths(const uint64_t now)
|
||||||
{
|
{
|
||||||
// assumes _lock is locked
|
// assumes _lock is locked
|
||||||
|
Loading…
x
Reference in New Issue
Block a user