This commit is contained in:
Adam Ierymenko 2020-03-27 15:09:09 -07:00
parent 369df245e3
commit 674edab814
No known key found for this signature in database
GPG key ID: C8877CF2D7A5D7F3
2 changed files with 7 additions and 2 deletions

View file

@ -31,9 +31,10 @@ class Address : public TriviallyCopyable
{ {
public: public:
ZT_INLINE Address() noexcept : _a(0) {} ZT_INLINE Address() noexcept : _a(0) {}
explicit ZT_INLINE Address(const uint64_t a) noexcept : _a(a) {} ZT_INLINE Address(const uint64_t a) noexcept : _a(a) {}
explicit ZT_INLINE Address(const uint8_t b[5]) noexcept : _a(((uint64_t)b[0] << 32U) | ((uint64_t)b[1] << 24U) | ((uint64_t)b[2] << 16U) | ((uint64_t)b[3] << 8U) | (uint64_t)b[4]) {} explicit ZT_INLINE Address(const uint8_t b[5]) noexcept : _a(((uint64_t)b[0] << 32U) | ((uint64_t)b[1] << 24U) | ((uint64_t)b[2] << 16U) | ((uint64_t)b[3] << 8U) | (uint64_t)b[4]) {}
ZT_INLINE Address &operator=(const Address &a) noexcept { _a = a._a; return *this; }
ZT_INLINE Address &operator=(const uint64_t a) noexcept { _a = a; return *this; } ZT_INLINE Address &operator=(const uint64_t a) noexcept { _a = a; return *this; }
/** /**

View file

@ -365,7 +365,7 @@ enum Verb
* *
* The following optional fields may also be present: * The following optional fields may also be present:
* *
* NAME - abitrary short user-defined name for this node * NAME - arbitrary short user-defined name for this node
* CONTACT - arbitrary short contact information string for this node * CONTACT - arbitrary short contact information string for this node
* NEIGHBORS - addresses of node(s) to whom we'll relay (mesh-like routing) * NEIGHBORS - addresses of node(s) to whom we'll relay (mesh-like routing)
* LOC_X, LOC_Y, LOC_Z - location relative to the nearest large center of mass * LOC_X, LOC_Y, LOC_Z - location relative to the nearest large center of mass
@ -382,6 +382,10 @@ enum Verb
* the same information about the responding peer as the originating peer * the same information about the responding peer as the originating peer
* sent. * sent.
* *
* Note that OK(HELLO) as well as HELLO itself is always sent using the long
* lived identity key, not ephemeral keys. This allows ephemeral re-keying to
* always succeed if one side's ephemeral keys are out of date.
*
* OK payload: * OK payload:
* <[8] timestamp echoed from original HELLO> * <[8] timestamp echoed from original HELLO>
* <[1] protocol version> * <[1] protocol version>