lokinet/llarp/service/session.cpp

55 lines
1.1 KiB
C++
Raw Normal View History

#include "session.hpp"
namespace llarp
{
namespace service
{
util::StatusObject
Session::ExtractStatus() const
{
2021-03-05 17:31:52 +00:00
util::StatusObject obj{
{"lastSend", to_json(lastSend)},
{"lastRecv", to_json(lastRecv)},
2021-03-05 17:31:52 +00:00
{"replyIntro", replyIntro.ExtractStatus()},
{"remote", Addr().ToString()},
2021-03-05 17:31:52 +00:00
{"seqno", seqno},
{"tx", messagesSend},
{"rx", messagesRecv},
2021-03-05 17:31:52 +00:00
{"intro", intro.ExtractStatus()}};
return obj;
2019-04-25 23:21:19 +00:00
}
Address
Session::Addr() const
{
return remote.Addr();
}
bool
Session::IsExpired(llarp_time_t now, llarp_time_t lifetime) const
{
if (forever)
return false;
const auto lastUsed = std::max(lastSend, lastRecv);
if (lastUsed == 0s)
return intro.IsExpired(now);
2021-05-03 19:16:23 +00:00
return now >= lastUsed && (now - lastUsed > lifetime);
}
void
Session::TX()
{
messagesSend++;
lastSend = time_now_ms();
}
void
Session::RX()
{
messagesRecv++;
lastRecv = time_now_ms();
}
} // namespace service
} // namespace llarp