Threading issue fix?

This commit is contained in:
Adam Ierymenko 2017-08-23 18:28:40 -07:00
parent 4d5983114c
commit dd8b03a5c5
2 changed files with 6 additions and 3 deletions

View File

@ -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;
}
}

View File

@ -719,7 +719,7 @@ bool Switch::_trySend(void *tPtr,Packet &packet,bool encrypt)
}
}
} else {
return false; // if we are not in cluster mode, there is no way we can send without knowing the peer directly
return false;
}
unsigned int chunkSize = std::min(packet.size(),(unsigned int)ZT_UDP_DEFAULT_PAYLOAD_MTU);