mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-12-30 01:46:11 -05:00
fix a bug when removing friends
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2050 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
0d06dbe55b
commit
0318e73917
@ -2143,34 +2143,45 @@ bool p3ConnectMgr::removeFriend(std::string id)
|
|||||||
|
|
||||||
/* move to othersList */
|
/* move to othersList */
|
||||||
bool success = false;
|
bool success = false;
|
||||||
|
std::list<std::string> toRemove;
|
||||||
std::map<std::string, peerConnectState>::iterator it;
|
std::map<std::string, peerConnectState>::iterator it;
|
||||||
if (mFriendList.end() != (it = mFriendList.find(id)))
|
//remove ssl and gpg_ids
|
||||||
|
for(it = mFriendList.begin(); it != mFriendList.end(); it++)
|
||||||
{
|
{
|
||||||
|
if (it->second.id == id || it->second.gpg_id == id) {
|
||||||
#ifdef CONN_DEBUG
|
#ifdef CONN_DEBUG
|
||||||
std::cerr << "p3ConnectMgr::removeFriend() friend found in the list." << id << std::endl;
|
std::cerr << "p3ConnectMgr::removeFriend() friend found in the list." << id << std::endl;
|
||||||
#endif
|
#endif
|
||||||
peerConnectState peer = it->second;
|
peerConnectState peer = it->second;
|
||||||
|
|
||||||
mFriendList.erase(it);
|
toRemove.push_back(it->second.id);
|
||||||
|
|
||||||
peer.state &= (~RS_PEER_S_FRIEND);
|
peer.state &= (~RS_PEER_S_FRIEND);
|
||||||
peer.state &= (~RS_PEER_S_CONNECTED);
|
peer.state &= (~RS_PEER_S_CONNECTED);
|
||||||
peer.state &= (~RS_PEER_S_ONLINE);
|
peer.state &= (~RS_PEER_S_ONLINE);
|
||||||
peer.actions = RS_PEER_MOVED;
|
peer.actions = RS_PEER_MOVED;
|
||||||
peer.inConnAttempt = false;
|
peer.inConnAttempt = false;
|
||||||
//mOthersList[id] = peer;
|
mOthersList[id] = peer;
|
||||||
mStatusChanged = true;
|
mStatusChanged = true;
|
||||||
|
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::list<std::string>::iterator toRemoveIt;
|
||||||
|
for(toRemoveIt = toRemove.begin(); toRemoveIt != toRemove.end(); toRemoveIt++) {
|
||||||
|
if (mFriendList.end() != (it = mFriendList.find(*toRemoveIt))) {
|
||||||
|
mFriendList.erase(it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONN_DEBUG
|
#ifdef CONN_DEBUG
|
||||||
std::cerr << "p3ConnectMgr::removeFriend() new mFriendList.size() : " << mFriendList.size() << std::endl;
|
std::cerr << "p3ConnectMgr::removeFriend() new mFriendList.size() : " << mFriendList.size() << std::endl;
|
||||||
#endif
|
#endif
|
||||||
IndicateConfigChanged(); /**** INDICATE MSG CONFIG CHANGED! *****/
|
IndicateConfigChanged(); /**** INDICATE MSG CONFIG CHANGED! *****/
|
||||||
|
|
||||||
return success;
|
return !toRemove.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user