diff --git a/Transports.cpp b/Transports.cpp index 104df4a8..3270c174 100644 --- a/Transports.cpp +++ b/Transports.cpp @@ -227,10 +227,19 @@ namespace transport auto it = m_Peers.find (ident); if (it == m_Peers.end ()) { - auto r = netdb.FindRouter (ident); - it = m_Peers.insert (std::pair(ident, { 0, r, nullptr, - i2p::util::GetSecondsSinceEpoch () })).first; - if (!ConnectToPeer (ident, it->second)) + bool connected = false; + try + { + auto r = netdb.FindRouter (ident); + it = m_Peers.insert (std::pair(ident, { 0, r, nullptr, + i2p::util::GetSecondsSinceEpoch () })).first; + connected= ConnectToPeer (ident, it->second); + } + catch (std::exception& ex) + { + LogPrint (eLogError, "Transports::PostMessage ", ex.what ()); + } + if (!connected) { DeleteI2NPMessage (msg); return; @@ -254,10 +263,19 @@ namespace transport auto it = m_Peers.find (ident); if (it == m_Peers.end ()) { - auto r = netdb.FindRouter (ident); - it = m_Peers.insert (std::pair(ident, { 0, r, nullptr, - i2p::util::GetSecondsSinceEpoch () })).first; - if (!ConnectToPeer (ident, it->second)) + bool connected = false; + try + { + auto r = netdb.FindRouter (ident); + it = m_Peers.insert (std::pair(ident, { 0, r, nullptr, + i2p::util::GetSecondsSinceEpoch () })).first; + connected = ConnectToPeer (ident, it->second); + } + catch (std::exception& ex) + { + LogPrint (eLogError, "Transports::PostMessages ", ex.what ()); + } + if (!connected) { for (auto it1: msgs) DeleteI2NPMessage (it1);