summaryrefslogtreecommitdiff
path: root/node/Peer.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-08-23 18:28:40 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-08-23 18:28:40 -0700
commitdd8b03a5c55baf7349ce075c8f4cad1d59cbe988 (patch)
tree6af6ce82cb6ba01a14bdfe9fb45df6d6d2be08f7 /node/Peer.cpp
parent4d5983114ca28cdad919e2cd7e6e1b5453c3b18c (diff)
downloadinfinitytier-dd8b03a5c55baf7349ce075c8f4cad1d59cbe988.tar.gz
infinitytier-dd8b03a5c55baf7349ce075c8f4cad1d59cbe988.zip
Threading issue fix?
Diffstat (limited to 'node/Peer.cpp')
-rw-r--r--node/Peer.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/node/Peer.cpp b/node/Peer.cpp
index 127f222c..b3020854 100644
--- a/node/Peer.cpp
+++ b/node/Peer.cpp
@@ -424,18 +424,21 @@ void Peer::redirect(void *tPtr,const int64_t localSocket,const InetAddress &remo
SharedPtr<Path> op;
SharedPtr<Path> np(RR->topology->getPath(localSocket,remoteAddress));
+ np->received(now);
attemptToContactAt(tPtr,localSocket,remoteAddress,now,true,np->nextOutgoingCounter());
{
Mutex::Lock _l(_paths_m);
if (remoteAddress.ss_family == AF_INET) {
op = _v4Path.p;
- _v4Path.p = np;
+ _v4Path.lr = now;
_v4Path.sticky = now;
+ _v4Path.p = np;
} else if (remoteAddress.ss_family == AF_INET6) {
op = _v6Path.p;
- _v6Path.p = np;
+ _v6Path.lr = now;
_v6Path.sticky = now;
+ _v6Path.p = np;
}
}