From 8071df0e68046fcc1a46034e79eb2142f0e9e3cb Mon Sep 17 00:00:00 2001 From: Jeff Date: Sat, 17 Dec 2016 06:35:38 -0500 Subject: [PATCH 1/3] don't crash on os x when no lease set found for udp tunnel --- Datagram.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Datagram.cpp b/Datagram.cpp index ca13863e..b19047f0 100644 --- a/Datagram.cpp +++ b/Datagram.cpp @@ -293,6 +293,7 @@ namespace datagram void DatagramSession::HandleLeaseSetUpdated(std::shared_ptr ls) { + if(!ls) return; // only update lease set if found and newer than previous lease set uint64_t oldExpire = 0; if(m_RemoteLeaseSet) oldExpire = m_RemoteLeaseSet->GetExpirationTime(); From 99b5f1b7b89e75b5748b86020e633b9e0c21a67b Mon Sep 17 00:00:00 2001 From: Jeff Date: Sat, 17 Dec 2016 06:37:34 -0500 Subject: [PATCH 2/3] remove pedantic log entry --- Datagram.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/Datagram.cpp b/Datagram.cpp index b19047f0..9e314b8d 100644 --- a/Datagram.cpp +++ b/Datagram.cpp @@ -243,9 +243,6 @@ namespace datagram if (sz) { auto idx = rand() % sz; m_CurrentRemoteLease = ls[idx]; - } else { - // no more leases, bail - LogPrint(eLogWarning, "DatagramSession: no more valid remote leases to ", m_RemoteIdent.ToBase32()); } } else { // no remote lease set? From 8b8007695c272b233337a25e1a12b972f3246033 Mon Sep 17 00:00:00 2001 From: r4sas Date: Sat, 17 Dec 2016 22:49:51 +0300 Subject: [PATCH 3/3] don't close streams after 1 hour --- I2PTunnel.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/I2PTunnel.cpp b/I2PTunnel.cpp index 2b7ccc0e..ff3e06a3 100644 --- a/I2PTunnel.cpp +++ b/I2PTunnel.cpp @@ -177,11 +177,13 @@ namespace client { if (bytes_transferred > 0) Write (m_StreamBuffer, bytes_transferred); // postpone termination - else + else if (ecode == boost::asio::error::timed_out && m_Stream->IsOpen ()) + StreamReceive (); + else Terminate (); } else - Terminate (); + Terminate (); } else Write (m_StreamBuffer, bytes_transferred);