diff --git a/llarp/service/protocol.cpp b/llarp/service/protocol.cpp index 31dab271e..cd95018a6 100644 --- a/llarp/service/protocol.cpp +++ b/llarp/service/protocol.cpp @@ -307,15 +307,6 @@ namespace llarp return; } - if(self->frame.T != self->msg->tag) - { - LogError("convotag missmatch: ", self->frame.T, - " != ", self->msg->tag); - self->msg.reset(); - delete self; - return; - } - if(self->handler->HasConvoTag(self->msg->tag)) { LogError("dropping duplicate convo tag T=", self->msg->tag); @@ -414,6 +405,11 @@ namespace llarp LogError("failed to decrypt message"); return false; } + if(T != msg->tag && !msg->tag.IsZero()) + { + LogError("convotag missmatch: ", T , " != ", msg->tag); + return false; + } msg->handler = handler; const PathID_t fromPath = F; logic->queue_func(