From 36d368cb78c4c352ec309dd9ba7c4cd8d434a725 Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Tue, 13 Aug 2019 13:26:41 -0700 Subject: [PATCH] Check for (local multipath support only) during decision to decrease direct path push interval. This prevents the chicken-and-egg situation of not knowing if two peers can support multipath on both ends and thusly not sending eachother their direct paths quickly enough. --- node/Constants.hpp | 2 +- node/Peer.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/node/Constants.hpp b/node/Constants.hpp index 16be0c206..010b69684 100644 --- a/node/Constants.hpp +++ b/node/Constants.hpp @@ -553,7 +553,7 @@ * peers of this peer's new link/address as soon as possible so that both peers can * begin forming an aggregated link. */ -#define ZT_DIRECT_PATH_PUSH_INTERVAL_MULTIPATH ZT_DIRECT_PATH_PUSH_INTERVAL_HAVEPATH / 16 +#define ZT_DIRECT_PATH_PUSH_INTERVAL_MULTIPATH (ZT_DIRECT_PATH_PUSH_INTERVAL_HAVEPATH / 16) /** * Time horizon for push direct paths cutoff diff --git a/node/Peer.cpp b/node/Peer.cpp index a7c8bf1af..c1bfc1707 100644 --- a/node/Peer.cpp +++ b/node/Peer.cpp @@ -211,7 +211,7 @@ void Peer::received( if (this->trustEstablished(now)) { const int64_t sinceLastPush = now - _lastDirectPathPushSent; if (sinceLastPush >= ((hops == 0) ? ZT_DIRECT_PATH_PUSH_INTERVAL_HAVEPATH : ZT_DIRECT_PATH_PUSH_INTERVAL) - || (_canUseMultipath && (sinceLastPush >= (ZT_DIRECT_PATH_PUSH_INTERVAL_MULTIPATH)))) { + || (_localMultipathSupported && (sinceLastPush >= (ZT_DIRECT_PATH_PUSH_INTERVAL_MULTIPATH)))) { _lastDirectPathPushSent = now; std::vector pathsToPush(RR->node->directPaths()); if (pathsToPush.size() > 0) {