|
|
|
@ -137,61 +137,31 @@ namespace llarp
|
|
|
|
|
outboundMessageQueues.emplace(zeroID, MessageQueue());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
OutboundMessageHandler::OnSessionEstablished(const RouterID& router)
|
|
|
|
|
{
|
|
|
|
|
FinalizeSessionRequest(router, SendStatus::Success);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
OutboundMessageHandler::OnConnectTimeout(const RouterID& router)
|
|
|
|
|
{
|
|
|
|
|
FinalizeSessionRequest(router, SendStatus::Timeout);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
OutboundMessageHandler::OnRouterNotFound(const RouterID& router)
|
|
|
|
|
{
|
|
|
|
|
FinalizeSessionRequest(router, SendStatus::RouterNotFound);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
OutboundMessageHandler::OnInvalidRouter(const RouterID& router)
|
|
|
|
|
{
|
|
|
|
|
FinalizeSessionRequest(router, SendStatus::InvalidRouter);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
OutboundMessageHandler::OnNoLink(const RouterID& router)
|
|
|
|
|
{
|
|
|
|
|
FinalizeSessionRequest(router, SendStatus::NoLink);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
OutboundMessageHandler::OnSessionResult(const RouterID& router, const SessionResult result)
|
|
|
|
|
constexpr SendStatus
|
|
|
|
|
ToSendStatus(const SessionResult result)
|
|
|
|
|
{
|
|
|
|
|
switch (result)
|
|
|
|
|
{
|
|
|
|
|
case SessionResult::Establish:
|
|
|
|
|
OnSessionEstablished(router);
|
|
|
|
|
break;
|
|
|
|
|
return SendStatus::Success;
|
|
|
|
|
case SessionResult::Timeout:
|
|
|
|
|
OnConnectTimeout(router);
|
|
|
|
|
break;
|
|
|
|
|
case SessionResult::EstablishFail:
|
|
|
|
|
return SendStatus::Timeout;
|
|
|
|
|
case SessionResult::RouterNotFound:
|
|
|
|
|
OnRouterNotFound(router);
|
|
|
|
|
break;
|
|
|
|
|
return SendStatus::RouterNotFound;
|
|
|
|
|
case SessionResult::InvalidRouter:
|
|
|
|
|
OnInvalidRouter(router);
|
|
|
|
|
break;
|
|
|
|
|
return SendStatus::InvalidRouter;
|
|
|
|
|
case SessionResult::NoLink:
|
|
|
|
|
OnNoLink(router);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
LogError("Impossible situation: enum class value out of bounds.");
|
|
|
|
|
std::abort();
|
|
|
|
|
break;
|
|
|
|
|
return SendStatus::NoLink;
|
|
|
|
|
}
|
|
|
|
|
// fall through case to appease compiler
|
|
|
|
|
return SendStatus::Congestion;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
OutboundMessageHandler::OnSessionResult(const RouterID& router, const SessionResult result)
|
|
|
|
|
{
|
|
|
|
|
FinalizeSessionRequest(router, ToSendStatus(result));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|