From b8075d65bd716c76d793ec2eb0af57e59e62d290 Mon Sep 17 00:00:00 2001 From: csoler Date: Sun, 10 Apr 2016 18:53:49 -0400 Subject: [PATCH] skip circle vetting when sending message posts with no author --- libretroshare/src/gxs/rsgxsnetservice.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libretroshare/src/gxs/rsgxsnetservice.cc b/libretroshare/src/gxs/rsgxsnetservice.cc index 5947efee0..c5651e96e 100644 --- a/libretroshare/src/gxs/rsgxsnetservice.cc +++ b/libretroshare/src/gxs/rsgxsnetservice.cc @@ -4602,11 +4602,13 @@ bool RsGxsNetService::canSendMsgIds(std::vector& msgMetas, co should_encrypt_id = circleId ; // For each message ID, check that the author is in the circle. If not, do not send the message, which means, remove it from the list. + // Unsigned messages are still transmitted. This is because in some groups (channels) the posts are not signed. Whether an unsigned post + // is allowed at this point is anyway already vetted by the RsGxsGenExchange service. if(mCircles->isLoaded(circleId)) { for(uint32_t i=0;iisRecipient(circleId, msgMetas[i]->mAuthorId)) + if( (!msgMetas[i]->mAuthorId.isNull()) && !mCircles->isRecipient(circleId, msgMetas[i]->mAuthorId)) { #ifdef NXS_NET_DEBUG_4 GXSNETDEBUG_PG(sslId,grpMeta.mGroupId) << " deleting MsgMeta entry for msg ID " << msgMetas[i]->mMsgId << " signed by " << msgMetas[i]->mAuthorId << " who is not in group circle " << circleId << std::endl;