From 1d852a1e83ce39a94666013617b7e1d54879249b Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Tue, 7 May 2019 14:27:21 -0400 Subject: [PATCH] send exit close ack --- llarp/path/transit_hop.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/llarp/path/transit_hop.cpp b/llarp/path/transit_hop.cpp index 82872c753..c224525c8 100644 --- a/llarp/path/transit_hop.cpp +++ b/llarp/path/transit_hop.cpp @@ -193,16 +193,22 @@ namespace llarp TransitHop::HandleCloseExitMessage( const llarp::routing::CloseExitMessage& msg, AbstractRouter* r) { - llarp::routing::DataDiscardMessage discard(info.rxID, msg.S); + const llarp::routing::DataDiscardMessage discard(info.rxID, msg.S); auto ep = r->exitContext().FindEndpointForPath(info.rxID); if(ep && msg.Verify(r->crypto(), ep->PubKey())) { - ep->Close(); - // ep is now gone af llarp::routing::CloseExitMessage reply; + reply.Y = msg.Y; reply.S = NextSeqNo(); if(reply.Sign(r->crypto(), r->identity())) - return SendRoutingMessage(reply, r); + { + if(SendRoutingMessage(reply, r)) + { + r->PumpLL(); + ep->Close(); + return true; + } + } } return SendRoutingMessage(discard, r); }