From 83c5131b672df82142b7b7d86689fce2a4aab0e1 Mon Sep 17 00:00:00 2001
From: orignal <i2porignal@yandex.ru>
Date: Wed, 7 Jun 2017 10:53:50 -0400
Subject: [PATCH] skip expired introducer

---
 libi2pd/SSU.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libi2pd/SSU.cpp b/libi2pd/SSU.cpp
index 1edeb3bd..eabdd8c4 100644
--- a/libi2pd/SSU.cpp
+++ b/libi2pd/SSU.cpp
@@ -445,12 +445,14 @@ namespace transport
 				int numIntroducers = address->ssu->introducers.size ();
 				if (numIntroducers > 0)
 				{
+					uint32_t ts = i2p::util::GetSecondsSinceEpoch ();
 					std::shared_ptr<SSUSession> introducerSession;
 					const i2p::data::RouterInfo::Introducer * introducer = nullptr;
 					// we might have a session to introducer already
 					for (int i = 0; i < numIntroducers; i++)
 					{
 						auto intr = &(address->ssu->introducers[i]);
+						if (intr->iExp > 0 && ts > intr->iExp) continue; // skip expired introducer
 						boost::asio::ip::udp::endpoint ep (intr->iHost, intr->iPort);
 						if (ep.address ().is_v4 ()) // ipv4 only
 						{	
@@ -465,7 +467,7 @@ namespace transport
 					}
 					if (!introducer)
 					{
-						LogPrint (eLogWarning, "SSU: Can't connect to unreachable router and no ipv4 introducers present");
+						LogPrint (eLogWarning, "SSU: Can't connect to unreachable router and no ipv4 non-expired introducers presented");
 						return;
 					}