|
|
|
@ -228,6 +228,8 @@ namespace llarp
|
|
|
|
|
bool
|
|
|
|
|
Session::IsTimedOut(llarp_time_t now) const
|
|
|
|
|
{
|
|
|
|
|
if(state == eInitial)
|
|
|
|
|
return false;
|
|
|
|
|
if(sendq.size() >= MaxSendQueueSize)
|
|
|
|
|
{
|
|
|
|
|
return now - lastActive > 5000;
|
|
|
|
@ -344,13 +346,16 @@ namespace llarp
|
|
|
|
|
LinkLayer* link =
|
|
|
|
|
static_cast< LinkLayer* >(utp_context_get_userdata(arg->context));
|
|
|
|
|
|
|
|
|
|
const llarp::Addr remoteAddr(*arg->address);
|
|
|
|
|
llarp::LogError(utp_error_code_names[arg->error_code], " via ",
|
|
|
|
|
remoteAddr);
|
|
|
|
|
if(session && link)
|
|
|
|
|
{
|
|
|
|
|
link->HandleTimeout(session);
|
|
|
|
|
llarp::LogError(utp_error_code_names[arg->error_code], " via ",
|
|
|
|
|
session->remoteAddr);
|
|
|
|
|
if(arg->error_code == UTP_ETIMEDOUT)
|
|
|
|
|
{
|
|
|
|
|
link->HandleTimeout(session);
|
|
|
|
|
utp_close(arg->socket);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
session->Close();
|
|
|
|
|
}
|
|
|
|
@ -577,6 +582,7 @@ namespace llarp
|
|
|
|
|
/// base constructor
|
|
|
|
|
Session::Session(LinkLayer* p)
|
|
|
|
|
{
|
|
|
|
|
state = eInitial;
|
|
|
|
|
m_NextTXMsgID = 0;
|
|
|
|
|
m_NextRXMsgID = 0;
|
|
|
|
|
parent = p;
|
|
|
|
|