From d6aca6fa00b322e9f965327641e8d2a68edadd1d Mon Sep 17 00:00:00 2001 From: orignal Date: Thu, 29 Sep 2016 11:24:52 -0400 Subject: [PATCH] always send reply --- I2CP.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/I2CP.cpp b/I2CP.cpp index 41f81155..e0139b9f 100644 --- a/I2CP.cpp +++ b/I2CP.cpp @@ -66,12 +66,19 @@ namespace client memcpy (buf + 4, payload, len); msg->len += len + 4; msg->FillI2NPMessageHeader (eI2NPData); + auto s = GetSharedFromThis (); auto remote = FindLeaseSet (ident); if (remote) - GetService ().post (std::bind (&I2CPDestination::SendMsg, GetSharedFromThis (), msg, remote)); + { + GetService ().post ( + [s, msg, remote, nonce]() + { + bool sent = s->SendMsg (msg, remote); + s->m_Owner->SendMessageStatusMessage (nonce, sent ? eI2CPMessageStatusGuaranteedSuccess : eI2CPMessageStatusGuaranteedFailure); + }); + } else { - auto s = GetSharedFromThis (); RequestDestination (ident, [s, msg, nonce](std::shared_ptr ls) {