From ad5d4991c8e0e73b3cb590d6fcb919bab9c45070 Mon Sep 17 00:00:00 2001 From: heavyrian2012 Date: Wed, 6 Sep 2023 19:47:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E9=80=81=E5=A5=BD=E5=8F=8B=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E4=B9=8B=E5=90=8E5=E5=88=86=E9=92=9F=E4=B9=8B?= =?UTF-8?q?=E5=86=85=E5=8F=AF=E4=BB=A5=E5=86=8D=E6=AC=A1=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/moquette/persistence/MemoryMessagesStore.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 697fae2b..de9dbbea 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -3103,14 +3103,18 @@ public class MemoryMessagesStore implements IMessagesStore { } } + boolean alreadyExist = false; if (existRequest != null && existRequest.getStatus() != ProtoConstants.FriendRequestStatus.RequestStatus_Accepted && !isAdmin) { + alreadyExist = true; if (mFriendRequestDuration > 0 && System.currentTimeMillis() - existRequest.getUpdateDt() > mFriendRequestDuration) { if (existRequest.getStatus() == ProtoConstants.FriendRequestStatus.RequestStatus_Rejected && System.currentTimeMillis() - existRequest.getUpdateDt() < mFriendRejectDuration) { return ErrorCode.ERROR_CODE_FRIEND_REQUEST_BLOCKED; } } else { - return ErrorCode.ERROR_CODE_FRIEND_ALREADY_REQUEST; + if(System.currentTimeMillis() - existRequest.getUpdateDt() > 5 * 60 * 1000) { + return ErrorCode.ERROR_CODE_FRIEND_ALREADY_REQUEST; + } } } @@ -3132,7 +3136,7 @@ public class MemoryMessagesStore implements IMessagesStore { .setExtra(request.getExtra()) .setStatus(ProtoConstants.FriendRequestStatus.RequestStatus_Sent) .setToReadStatus(false) - .setUpdateDt(System.currentTimeMillis()) + .setUpdateDt(alreadyExist ? existRequest.getUpdateDt() : System.currentTimeMillis()) .build(); databaseStore.persistOrUpdateFriendRequest(newRequest);