MCPcopy Create free account
hub / github.com/PurpleI2P/i2pd / StartPeerTest

Method StartPeerTest

libi2pd/SSU2.cpp:1066–1086  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1064 }
1065
1066 bool SSU2Server::StartPeerTest (std::shared_ptr<const i2p::data::RouterInfo> router, bool v4)
1067 {
1068 if (!router) return false;
1069 auto addr = v4 ? router->GetSSU2V4Address () : router->GetSSU2V6Address ();
1070 if (!addr) return false;
1071 auto session = FindSession (router->GetIdentHash ());
1072 if (session)
1073 {
1074 auto remoteAddr = session->GetAddress ();
1075 if (!remoteAddr || !remoteAddr->IsPeerTesting () ||
1076 (v4 && !remoteAddr->IsV4 ()) || (!v4 && !remoteAddr->IsV6 ())) return false;
1077 if (session->IsEstablished ())
1078 boost::asio::post (GetService (), [session]() { session->SendPeerTest (); });
1079 else
1080 session->SetOnEstablished ([session]() { session->SendPeerTest (); });
1081 return true;
1082 }
1083 else
1084 CreateSession (router, addr, true);
1085 return true;
1086 }
1087
1088 void SSU2Server::ScheduleTermination ()
1089 {

Callers 1

PeerTestMethod · 0.80

Calls 9

GetSSU2V4AddressMethod · 0.80
GetSSU2V6AddressMethod · 0.80
IsPeerTestingMethod · 0.80
SetOnEstablishedMethod · 0.80
GetAddressMethod · 0.45
IsV4Method · 0.45
IsV6Method · 0.45
IsEstablishedMethod · 0.45
SendPeerTestMethod · 0.45

Tested by

no test coverage detected