Browse Source

fix udp tunnel route switching logic

pull/652/head
Jeff Becker 8 years ago
parent
commit
ae2b5dfd3e
No known key found for this signature in database
GPG Key ID: AB950234D6EA286B
  1. 4
      Datagram.cpp

4
Datagram.cpp

@ -276,7 +276,7 @@ namespace datagram
// our path looks dead so we need to rotate paths // our path looks dead so we need to rotate paths
if (now - m_LastSuccess >= DATAGRAM_SESSION_PATH_TIMEOUT) return true; if (now - m_LastSuccess >= DATAGRAM_SESSION_PATH_TIMEOUT) return true;
// if we have a routing session and routing path we don't need to switch paths // if we have a routing session and routing path we don't need to switch paths
return m_RoutingSession != nullptr && m_RoutingSession->GetSharedRoutingPath () != nullptr; return m_RoutingSession == nullptr || m_RoutingSession->GetSharedRoutingPath () == nullptr;
} }
@ -291,7 +291,7 @@ namespace datagram
if(currentLease) // if we have a lease return true if it's about to expire otherwise return false if(currentLease) // if we have a lease return true if it's about to expire otherwise return false
return currentLease->ExpiresWithin( DATAGRAM_SESSION_LEASE_HANDOVER_WINDOW, DATAGRAM_SESSION_LEASE_HANDOVER_FUDGE ); return currentLease->ExpiresWithin( DATAGRAM_SESSION_LEASE_HANDOVER_WINDOW, DATAGRAM_SESSION_LEASE_HANDOVER_FUDGE );
// we have no current lease, we should switch // we have no current lease, we should switch
return true; return currentLease == nullptr;
} }
std::shared_ptr<i2p::garlic::GarlicRoutingPath> DatagramSession::GetNextRoutingPath() std::shared_ptr<i2p::garlic::GarlicRoutingPath> DatagramSession::GetNextRoutingPath()

Loading…
Cancel
Save