From 6125288e95f7a199113cd0f0dc649a2a664401e2 Mon Sep 17 00:00:00 2001 From: orignal Date: Mon, 23 Mar 2015 22:18:30 -0400 Subject: [PATCH] select really other remote lease --- Streaming.cpp | 14 ++++++++------ Streaming.h | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Streaming.cpp b/Streaming.cpp index 510d0f14..9420bd4b 100644 --- a/Streaming.cpp +++ b/Streaming.cpp @@ -608,17 +608,16 @@ namespace stream LogPrint (eLogInfo, "All leases are expired. Trying to request"); m_RemoteLeaseSet = nullptr; m_LocalDestination.GetOwner ().RequestDestination (m_RemoteIdentity.GetIdentHash (), - std::bind (&Stream::HandleLeaseSetRequestComplete, shared_from_this (), - std::placeholders::_1, packets)); + std::bind (&Stream::HandleLeaseSetRequestComplete, shared_from_this (), std::placeholders::_1)); } } - void Stream::HandleLeaseSetRequestComplete (bool success, std::vector packets) + void Stream::HandleLeaseSetRequestComplete (bool success) { if (success) { - LogPrint (eLogInfo, "New LeaseSet found. Sending packets"); - SendPackets (packets); + LogPrint (eLogInfo, "New LeaseSet found"); + UpdateCurrentRemoteLease (); } } @@ -717,7 +716,10 @@ namespace stream if (!leases.empty ()) { uint32_t i = i2p::context.GetRandomNumberGenerator ().GenerateWord32 (0, leases.size () - 1); - m_CurrentRemoteLease = leases[i]; + if (m_CurrentRemoteLease.endDate && leases[i].tunnelID == m_CurrentRemoteLease.tunnelID) + // make sure we don't select previous + i = (i + 1) % leases.size (); // if so, pick next + m_CurrentRemoteLease = leases[i]; } else { diff --git a/Streaming.h b/Streaming.h index 12a674bc..cfb2ce90 100644 --- a/Streaming.h +++ b/Streaming.h @@ -147,7 +147,7 @@ namespace stream template void HandleReceiveTimer (const boost::system::error_code& ecode, const Buffer& buffer, ReceiveHandler handler); - void HandleLeaseSetRequestComplete (bool success, std::vector packets); + void HandleLeaseSetRequestComplete (bool success); void ScheduleResend (); void HandleResendTimer (const boost::system::error_code& ecode);