From 3009ac1305d9b7509b6ed8b71a6aa1ab9c35c5a3 Mon Sep 17 00:00:00 2001 From: Doug Hoyte Date: Fri, 13 Jan 2023 11:46:38 -0500 Subject: [PATCH] bugfix: NIP-20 says duplicate messages should return written = true --- src/RelayIngester.cpp | 2 +- src/RelayWriter.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/RelayIngester.cpp b/src/RelayIngester.cpp index 8b5634e..1d8d7c6 100644 --- a/src/RelayIngester.cpp +++ b/src/RelayIngester.cpp @@ -85,7 +85,7 @@ void RelayServer::ingesterProcessEvent(lmdb::txn &txn, uint64_t connId, secp256k auto existing = lookupEventById(txn, sv(flat->id())); if (existing) { LI << "Duplicate event, skipping"; - sendOKResponse(connId, to_hex(sv(flat->id())), false, "duplicate: have this event"); + sendOKResponse(connId, to_hex(sv(flat->id())), true, "duplicate: have this event"); return; } } diff --git a/src/RelayWriter.cpp b/src/RelayWriter.cpp index 326525e..a082487 100644 --- a/src/RelayWriter.cpp +++ b/src/RelayWriter.cpp @@ -41,6 +41,7 @@ void RelayServer::runWriter(ThreadPool::Thread &thr) { written = true; } else if (newEvent.status == EventWriteStatus::Duplicate) { message = "duplicate: have this event"; + written = true; } else if (newEvent.status == EventWriteStatus::Replaced) { message = "replaced: have newer event"; } else if (newEvent.status == EventWriteStatus::Deleted) {