Fix Lobby auto-subscribe.

Don't remove auto-subscribe if we cannot get gxsId detail.
But what happens if the id is removed?
This commit is contained in:
Phenom 2017-08-01 10:15:42 +02:00
parent 7d5f60185b
commit 27bedf8414

View File

@ -577,9 +577,12 @@ void DistributedChatService::handleRecvChatLobbyList(RsChatLobbyListItem *item)
} }
RsIdentityDetails idd ; RsIdentityDetails idd ;
if(!rsIdentity->getIdDetails(gxsId,idd))
std::cerr << "(EE) Lobby auto-subscribe: Can't get Id detail for:" << gxsId.toStdString().c_str() << std::endl;
else
{
if(IS_PGP_SIGNED_LOBBY(flags) if(IS_PGP_SIGNED_LOBBY(flags)
&& (!rsIdentity->getIdDetails(gxsId,idd) && !(idd.mFlags & RS_IDENTITY_FLAGS_PGP_LINKED) )
|| !(idd.mFlags & RS_IDENTITY_FLAGS_PGP_LINKED)) )
{ {
std::cerr << "(EE) Attempt to auto-subscribe to signed lobby with non signed Id. Remove it." << std::endl; std::cerr << "(EE) Attempt to auto-subscribe to signed lobby with non signed Id. Remove it." << std::endl;
setLobbyAutoSubscribe(*it, false); setLobbyAutoSubscribe(*it, false);
@ -587,6 +590,7 @@ void DistributedChatService::handleRecvChatLobbyList(RsChatLobbyListItem *item)
joinVisibleChatLobby(*it,gxsId); joinVisibleChatLobby(*it,gxsId);
} }
} }
}
for(std::list<ChatLobbyId>::const_iterator it = invitationNeeded.begin();it!=invitationNeeded.end();++it) for(std::list<ChatLobbyId>::const_iterator it = invitationNeeded.begin();it!=invitationNeeded.end();++it)
invitePeerToLobby(*it,item->PeerId(),false) ; invitePeerToLobby(*it,item->PeerId(),false) ;