dont kill active exit paths

pull/576/head
Jeff Becker 5 years ago
parent 3120464fd6
commit d5162c2aad
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -36,7 +36,7 @@ namespace llarp
ShouldBundleRC() const override
{
// TODO: make configurable
return false;
return true;
}
void

@ -71,11 +71,10 @@ namespace llarp
LogInfo(_args[0], " exit code: ", status);
delete self;
}
else
if(::execvpe(_args[0].c_str(), args.data(), env.data()) == -1)
{
LogError("failed to exec ", _args[0], " : ", strerror(errno));
}
else if(::execvpe(_args[0].c_str(), args.data(), env.data()) == -1)
{
LogError("failed to exec ", _args[0], " : ", strerror(errno));
}
}
};

@ -320,7 +320,7 @@ namespace llarp
}
if(h)
return h;
RouterID us(OurRouterID());
const RouterID us(OurRouterID());
auto& map = m_TransitPaths;
{
util::Lock lock(&map.first);
@ -577,17 +577,6 @@ namespace llarp
SendRoutingMessage(&latency, r);
return;
}
if(SupportsAnyRoles(ePathRoleExit | ePathRoleSVC))
{
if(m_LastRecvMessage && now > m_LastRecvMessage
&& now - m_LastRecvMessage > path::alive_timeout)
{
// TODO: send close exit message
// r->routerProfiling().MarkPathFail(this);
// EnterState(ePathTimeout, now);
return;
}
}
if(m_LastRecvMessage && now > m_LastRecvMessage)
{
auto dlt = now - m_LastRecvMessage;
@ -931,7 +920,6 @@ namespace llarp
// check if we can handle exit data
if(!SupportsAnyRoles(ePathRoleExit | ePathRoleSVC))
return false;
MarkActive(r->Now());
// handle traffic if we have a handler
if(!m_ExitTrafficHandler)
return false;
@ -941,8 +929,12 @@ namespace llarp
if(pkt.size() <= 8)
return false;
uint64_t counter = bufbe64toh(pkt.data());
m_ExitTrafficHandler(
this, llarp_buffer_t(pkt.data() + 8, pkt.size() - 8), counter);
if(m_ExitTrafficHandler(
this, llarp_buffer_t(pkt.data() + 8, pkt.size() - 8), counter))
{
MarkActive(r->Now());
EnterState(ePathEstablished, r->Now());
}
}
return sent;
}

@ -289,7 +289,6 @@ namespace llarp
if(!self->msg->BDecode(buf))
{
llarp::LogError("failed to decode inner protocol message");
llarp::DumpBuffer(*buf);
delete self->msg;
delete self;
return;
@ -299,8 +298,6 @@ namespace llarp
{
llarp::LogError("intro frame has invalid signature Z=", self->frame.Z,
" from ", self->msg->sender.Addr());
self->frame.Dump< MAX_PROTOCOL_MESSAGE_SIZE >();
self->msg->Dump< MAX_PROTOCOL_MESSAGE_SIZE >();
delete self->msg;
delete self;
return;

Loading…
Cancel
Save