diff --git a/include/llarp/messages/discard.hpp b/include/llarp/messages/discard.hpp index 7a51a9609..0a32d5189 100644 --- a/include/llarp/messages/discard.hpp +++ b/include/llarp/messages/discard.hpp @@ -58,10 +58,8 @@ namespace llarp { } - DataDiscardMessage(const PathID_t& src, const PathID_t& dst, uint64_t s) - : P(dst) + DataDiscardMessage(const PathID_t& dst, uint64_t s) : P(dst) { - from = src; S = s; version = LLARP_PROTO_VERSION; } diff --git a/llarp/transit_hop.cpp b/llarp/transit_hop.cpp index 5ff32ab59..ffe6aa578 100644 --- a/llarp/transit_hop.cpp +++ b/llarp/transit_hop.cpp @@ -54,7 +54,6 @@ namespace llarp TransitHop::SendRoutingMessage(llarp::routing::IMessage* msg, llarp_router* r) { - msg->S = m_SequenceNum++; byte_t tmp[MAX_LINK_MSG_SIZE - 1024]; auto buf = llarp::StackBuffer< decltype(tmp) >(tmp); if(!msg->BEncode(&buf)) @@ -151,8 +150,9 @@ namespace llarp auto path = r->paths.GetByUpstream(r->pubkey(), msg->P); if(!path) { - llarp::LogWarn("No such path for path transfer pathid=", msg->P); - return false; + llarp::routing::DataDiscardMessage discarded(msg->P, msg->S); + path = r->paths.GetByUpstream(r->pubkey(), msg->from); + return path && path->SendRoutingMessage(&discarded, r); } byte_t tmp[service::MAX_PROTOCOL_MESSAGE_SIZE];