mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-01-27 15:57:08 -05:00
added missing mutex, and warnings if permission flags methods are not called with correct ids
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6287 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
c2512318a3
commit
8399ce82ee
@ -1813,26 +1813,47 @@ bool p3PeerMgrIMPL::assignPeersToGroup(const std::string &groupId, const std::li
|
|||||||
|
|
||||||
ServicePermissionFlags p3PeerMgrIMPL::servicePermissionFlags_sslid(const std::string& ssl_id)
|
ServicePermissionFlags p3PeerMgrIMPL::servicePermissionFlags_sslid(const std::string& ssl_id)
|
||||||
{
|
{
|
||||||
|
std::string gpg_id ;
|
||||||
|
|
||||||
|
{
|
||||||
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||||
|
|
||||||
|
if(ssl_id.length() != 32)
|
||||||
|
{
|
||||||
|
std::cerr << "(EE) p3PeerMgrIMPL::servicePermissionFlags_sslid() called with inconsistent id " << ssl_id << std::endl;
|
||||||
|
return RS_SERVICE_PERM_ALL ;
|
||||||
|
}
|
||||||
std::map<std::string, peerState>::const_iterator it = mFriendList.find(ssl_id);
|
std::map<std::string, peerState>::const_iterator it = mFriendList.find(ssl_id);
|
||||||
|
|
||||||
if(it == mFriendList.end())
|
if(it == mFriendList.end())
|
||||||
return RS_SERVICE_PERM_ALL ;
|
return RS_SERVICE_PERM_ALL ;
|
||||||
else
|
|
||||||
return servicePermissionFlags(it->second.gpg_id) ;
|
gpg_id = it->second.gpg_id ;
|
||||||
|
}
|
||||||
|
|
||||||
|
return servicePermissionFlags(gpg_id) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ServicePermissionFlags p3PeerMgrIMPL::servicePermissionFlags(const std::string& pgp_id)
|
ServicePermissionFlags p3PeerMgrIMPL::servicePermissionFlags(const std::string& pgp_id)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
if(pgp_id.length() != 16)
|
||||||
|
{
|
||||||
|
std::cerr << "(EE) p3PeerMgrIMPL::servicePermissionFlags() called with inconsistent id " << pgp_id << std::endl;
|
||||||
|
return RS_SERVICE_PERM_ALL ;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||||
|
|
||||||
std::map<std::string,ServicePermissionFlags>::const_iterator it = mFriendsPermissionFlags.find( pgp_id ) ;
|
std::map<std::string,ServicePermissionFlags>::const_iterator it = mFriendsPermissionFlags.find( pgp_id ) ;
|
||||||
|
|
||||||
if(it == mFriendsPermissionFlags.end())
|
if(it == mFriendsPermissionFlags.end())
|
||||||
return RS_SERVICE_PERM_ALL ;
|
return RS_SERVICE_PERM_ALL ;
|
||||||
else
|
else
|
||||||
return it->second ;
|
return it->second ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
void p3PeerMgrIMPL::setServicePermissionFlags(const std::string& pgp_id, const ServicePermissionFlags& flags)
|
void p3PeerMgrIMPL::setServicePermissionFlags(const std::string& pgp_id, const ServicePermissionFlags& flags)
|
||||||
{
|
{
|
||||||
|
@ -123,7 +123,7 @@ class p3PeerMgr
|
|||||||
virtual ~p3PeerMgr() { return; }
|
virtual ~p3PeerMgr() { return; }
|
||||||
|
|
||||||
virtual bool addFriend(const std::string &ssl_id, const std::string &gpg_id, uint32_t netMode = RS_NET_MODE_UDP,
|
virtual bool addFriend(const std::string &ssl_id, const std::string &gpg_id, uint32_t netMode = RS_NET_MODE_UDP,
|
||||||
uint32_t visState = RS_VIS_STATE_STD , time_t lastContact = 0,ServicePermissionFlags = RS_SERVICE_PERM_ALL) = 0;
|
uint32_t visState = RS_VIS_STATE_STD , time_t lastContact = 0,ServicePermissionFlags = ServicePermissionFlags(RS_SERVICE_PERM_ALL)) = 0;
|
||||||
virtual bool removeFriend(const std::string &ssl_id) = 0;
|
virtual bool removeFriend(const std::string &ssl_id) = 0;
|
||||||
|
|
||||||
virtual bool isFriend(const std::string &ssl_id) = 0;
|
virtual bool isFriend(const std::string &ssl_id) = 0;
|
||||||
@ -214,7 +214,7 @@ class p3PeerMgrIMPL: public p3PeerMgr, public p3Config
|
|||||||
/************************************************************************************************/
|
/************************************************************************************************/
|
||||||
|
|
||||||
virtual bool addFriend(const std::string &ssl_id, const std::string &gpg_id, uint32_t netMode = RS_NET_MODE_UDP,
|
virtual bool addFriend(const std::string &ssl_id, const std::string &gpg_id, uint32_t netMode = RS_NET_MODE_UDP,
|
||||||
uint32_t visState = RS_VIS_STATE_STD , time_t lastContact = 0,ServicePermissionFlags = RS_SERVICE_PERM_ALL);
|
uint32_t visState = RS_VIS_STATE_STD , time_t lastContact = 0,ServicePermissionFlags = ServicePermissionFlags(RS_SERVICE_PERM_ALL));
|
||||||
virtual bool removeFriend(const std::string &ssl_id);
|
virtual bool removeFriend(const std::string &ssl_id);
|
||||||
|
|
||||||
virtual bool isFriend(const std::string &ssl_id);
|
virtual bool isFriend(const std::string &ssl_id);
|
||||||
|
@ -707,7 +707,7 @@ void p3disc::recvPeerDetails(RsDiscReply *item, const std::string &certGpgId)
|
|||||||
#ifdef P3DISC_DEBUG
|
#ifdef P3DISC_DEBUG
|
||||||
std::cerr << "--> Adding to friends list " << pit->pid << " - " << pit->gpg_id << std::endl;
|
std::cerr << "--> Adding to friends list " << pit->pid << " - " << pit->gpg_id << std::endl;
|
||||||
#endif
|
#endif
|
||||||
mPeerMgr->addFriend(pit->pid, pit->gpg_id, pit->netMode, RS_VIS_STATE_NODISC, 0);
|
mPeerMgr->addFriend(pit->pid, pit->gpg_id, pit->netMode, RS_VIS_STATE_NODISC,(time_t)0,RS_SERVICE_PERM_ALL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user