mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
Fixed private message notification. Remove offline private messages of none friends at startup and when a friend is removed.
Moved the removing of the history of removed friends from p3PeerMgrIMPL to p3ChatService. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4940 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
9c5e4636c2
commit
a2982f3370
@ -1387,7 +1387,7 @@ bool p3NetMgrIMPL::netAssistConnectShutdown()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool p3NetMgrIMPL::netAssistFriend(std::string id, bool on)
|
bool p3NetMgrIMPL::netAssistFriend(const std::string &id, bool on)
|
||||||
{
|
{
|
||||||
std::map<uint32_t, pqiNetAssistConnect *>::iterator it;
|
std::map<uint32_t, pqiNetAssistConnect *>::iterator it;
|
||||||
|
|
||||||
@ -1407,7 +1407,7 @@ bool p3NetMgrIMPL::netAssistFriend(std::string id, bool on)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool p3NetMgrIMPL::netAssistKnownPeer(std::string id, const struct sockaddr_in &addr, uint32_t flags)
|
bool p3NetMgrIMPL::netAssistKnownPeer(const std::string &id, const struct sockaddr_in &addr, uint32_t flags)
|
||||||
{
|
{
|
||||||
std::map<uint32_t, pqiNetAssistConnect *>::iterator it;
|
std::map<uint32_t, pqiNetAssistConnect *>::iterator it;
|
||||||
|
|
||||||
@ -1458,7 +1458,7 @@ bool p3NetMgrIMPL::netAssistAttach(bool on)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool p3NetMgrIMPL::netAssistStatusUpdate(std::string id, int state)
|
bool p3NetMgrIMPL::netAssistStatusUpdate(const std::string &id, int state)
|
||||||
{
|
{
|
||||||
std::map<uint32_t, pqiNetAssistConnect *>::iterator it;
|
std::map<uint32_t, pqiNetAssistConnect *>::iterator it;
|
||||||
|
|
||||||
|
@ -118,10 +118,10 @@ virtual bool setNetworkMode(uint32_t netMode) = 0;
|
|||||||
virtual bool setVisState(uint32_t visState) = 0;
|
virtual bool setVisState(uint32_t visState) = 0;
|
||||||
|
|
||||||
// Switch DHT On/Off.
|
// Switch DHT On/Off.
|
||||||
virtual bool netAssistFriend(std::string id, bool on) = 0;
|
virtual bool netAssistFriend(const std::string &id, bool on) = 0;
|
||||||
virtual bool netAssistKnownPeer(std::string id, const struct sockaddr_in &addr, uint32_t flags) = 0;
|
virtual bool netAssistKnownPeer(const std::string &id, const struct sockaddr_in &addr, uint32_t flags) = 0;
|
||||||
virtual bool netAssistBadPeer(const struct sockaddr_in &addr, uint32_t reason, uint32_t flags, uint32_t age) = 0;
|
virtual bool netAssistBadPeer(const struct sockaddr_in &addr, uint32_t reason, uint32_t flags, uint32_t age) = 0;
|
||||||
virtual bool netAssistStatusUpdate(std::string id, int mode) = 0;
|
virtual bool netAssistStatusUpdate(const std::string &id, int mode) = 0;
|
||||||
|
|
||||||
/* Get Network State */
|
/* Get Network State */
|
||||||
virtual uint32_t getNetStateMode() = 0;
|
virtual uint32_t getNetStateMode() = 0;
|
||||||
@ -174,10 +174,10 @@ virtual bool setNetworkMode(uint32_t netMode);
|
|||||||
virtual bool setVisState(uint32_t visState);
|
virtual bool setVisState(uint32_t visState);
|
||||||
|
|
||||||
// Switch DHT On/Off.
|
// Switch DHT On/Off.
|
||||||
virtual bool netAssistFriend(std::string id, bool on);
|
virtual bool netAssistFriend(const std::string &id, bool on);
|
||||||
virtual bool netAssistKnownPeer(std::string id, const struct sockaddr_in &addr, uint32_t flags);
|
virtual bool netAssistKnownPeer(const std::string &id, const struct sockaddr_in &addr, uint32_t flags);
|
||||||
virtual bool netAssistBadPeer(const struct sockaddr_in &addr, uint32_t reason, uint32_t flags, uint32_t age);
|
virtual bool netAssistBadPeer(const struct sockaddr_in &addr, uint32_t reason, uint32_t flags, uint32_t age);
|
||||||
virtual bool netAssistStatusUpdate(std::string id, int mode);
|
virtual bool netAssistStatusUpdate(const std::string &id, int mode);
|
||||||
|
|
||||||
/* Get Network State */
|
/* Get Network State */
|
||||||
virtual uint32_t getNetStateMode();
|
virtual uint32_t getNetStateMode();
|
||||||
|
@ -112,7 +112,6 @@ p3PeerMgrIMPL::p3PeerMgrIMPL()
|
|||||||
|
|
||||||
mLinkMgr = NULL;
|
mLinkMgr = NULL;
|
||||||
mNetMgr = NULL;
|
mNetMgr = NULL;
|
||||||
mHistoryMgr = NULL;
|
|
||||||
|
|
||||||
/* setup basics of own state */
|
/* setup basics of own state */
|
||||||
mOwnState.id = AuthSSL::getAuthSSL()->OwnId();
|
mOwnState.id = AuthSSL::getAuthSSL()->OwnId();
|
||||||
@ -135,11 +134,10 @@ p3PeerMgrIMPL::p3PeerMgrIMPL()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void p3PeerMgrIMPL::setManagers(p3LinkMgrIMPL *linkMgr, p3NetMgrIMPL *netMgr, p3HistoryMgr *historyMgr)
|
void p3PeerMgrIMPL::setManagers(p3LinkMgrIMPL *linkMgr, p3NetMgrIMPL *netMgr)
|
||||||
{
|
{
|
||||||
mLinkMgr = linkMgr;
|
mLinkMgr = linkMgr;
|
||||||
mNetMgr = netMgr;
|
mNetMgr = netMgr;
|
||||||
mHistoryMgr = historyMgr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void p3PeerMgrIMPL::setOwnNetworkMode(uint32_t netMode)
|
void p3PeerMgrIMPL::setOwnNetworkMode(uint32_t netMode)
|
||||||
@ -564,7 +562,6 @@ bool p3PeerMgrIMPL::removeFriend(const std::string &id)
|
|||||||
{
|
{
|
||||||
if (mFriendList.end() != (it = mFriendList.find(*rit)))
|
if (mFriendList.end() != (it = mFriendList.find(*rit)))
|
||||||
{
|
{
|
||||||
mHistoryMgr->clear(it->second.id);
|
|
||||||
mFriendList.erase(it);
|
mFriendList.erase(it);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,7 +113,6 @@ class p3NetMgr;
|
|||||||
|
|
||||||
class p3LinkMgrIMPL;
|
class p3LinkMgrIMPL;
|
||||||
class p3NetMgrIMPL;
|
class p3NetMgrIMPL;
|
||||||
class p3HistoryMgr;
|
|
||||||
|
|
||||||
class p3PeerMgr
|
class p3PeerMgr
|
||||||
{
|
{
|
||||||
@ -284,7 +283,7 @@ virtual bool haveOnceConnected();
|
|||||||
|
|
||||||
p3PeerMgrIMPL();
|
p3PeerMgrIMPL();
|
||||||
|
|
||||||
void setManagers(p3LinkMgrIMPL *linkMgr, p3NetMgrIMPL *netMgr, p3HistoryMgr *historyMgr);
|
void setManagers(p3LinkMgrIMPL *linkMgr, p3NetMgrIMPL *netMgr);
|
||||||
|
|
||||||
void tick();
|
void tick();
|
||||||
|
|
||||||
@ -319,7 +318,6 @@ void printPeerLists(std::ostream &out);
|
|||||||
|
|
||||||
p3LinkMgrIMPL *mLinkMgr;
|
p3LinkMgrIMPL *mLinkMgr;
|
||||||
p3NetMgrIMPL *mNetMgr;
|
p3NetMgrIMPL *mNetMgr;
|
||||||
p3HistoryMgr *mHistoryMgr;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RsMutex mPeerMtx; /* protects below */
|
RsMutex mPeerMtx; /* protects below */
|
||||||
|
@ -1913,7 +1913,7 @@ int RsServer::StartupRetroShare()
|
|||||||
rsNotify = new p3Notify();
|
rsNotify = new p3Notify();
|
||||||
rsPeers = new p3Peers(mLinkMgr, mPeerMgr, mNetMgr);
|
rsPeers = new p3Peers(mLinkMgr, mPeerMgr, mNetMgr);
|
||||||
|
|
||||||
mPeerMgr->setManagers(mLinkMgr, mNetMgr, mHistoryMgr);
|
mPeerMgr->setManagers(mLinkMgr, mNetMgr);
|
||||||
mNetMgr->setManagers(mPeerMgr, mLinkMgr);
|
mNetMgr->setManagers(mPeerMgr, mLinkMgr);
|
||||||
|
|
||||||
//load all the SSL certs as friends
|
//load all the SSL certs as friends
|
||||||
|
@ -1134,9 +1134,7 @@ bool p3ChatService::clearPrivateChatQueue(bool incoming, const std::string &id)
|
|||||||
delete c;
|
delete c;
|
||||||
changed = true;
|
changed = true;
|
||||||
|
|
||||||
std::list<RsChatMsgItem *>::iterator it1 = it;
|
it = list->erase(it);
|
||||||
it++;
|
|
||||||
list->erase(it1);
|
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1439,6 +1437,9 @@ std::cerr << "p3chatservice: sending requested status string for peer " << peer_
|
|||||||
|
|
||||||
bool p3ChatService::loadList(std::list<RsItem*>& load)
|
bool p3ChatService::loadList(std::list<RsItem*>& load)
|
||||||
{
|
{
|
||||||
|
std::list<std::string> ssl_peers;
|
||||||
|
mLinkMgr->getFriendList(ssl_peers);
|
||||||
|
|
||||||
for(std::list<RsItem*>::const_iterator it(load.begin());it!=load.end();++it)
|
for(std::list<RsItem*>::const_iterator it(load.begin());it!=load.end();++it)
|
||||||
{
|
{
|
||||||
RsChatAvatarItem *ai = NULL ;
|
RsChatAvatarItem *ai = NULL ;
|
||||||
@ -1474,19 +1475,22 @@ bool p3ChatService::loadList(std::list<RsItem*>& load)
|
|||||||
RsStackMutex stack(mChatMtx); /********** STACK LOCKED MTX ******/
|
RsStackMutex stack(mChatMtx); /********** STACK LOCKED MTX ******/
|
||||||
|
|
||||||
if (citem->chatFlags & RS_CHAT_FLAG_PRIVATE) {
|
if (citem->chatFlags & RS_CHAT_FLAG_PRIVATE) {
|
||||||
RsChatMsgItem *ci = new RsChatMsgItem();
|
if (std::find(ssl_peers.begin(), ssl_peers.end(), citem->configPeerId) != ssl_peers.end()) {
|
||||||
citem->get(ci);
|
RsChatMsgItem *ci = new RsChatMsgItem();
|
||||||
|
citem->get(ci);
|
||||||
|
|
||||||
if (citem->configFlags & RS_CHATMSG_CONFIGFLAG_INCOMING) {
|
if (citem->configFlags & RS_CHATMSG_CONFIGFLAG_INCOMING) {
|
||||||
privateIncomingList.push_back(ci);
|
privateIncomingList.push_back(ci);
|
||||||
|
} else {
|
||||||
|
privateOutgoingList.push_back(ci);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
privateOutgoingList.push_back(ci);
|
// no friends
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// ignore all other items
|
// ignore all other items
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
delete *it;
|
delete *it;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
@ -1507,6 +1511,7 @@ bool p3ChatService::loadList(std::list<RsItem*>& load)
|
|||||||
// delete unknown items
|
// delete unknown items
|
||||||
delete *it;
|
delete *it;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1621,6 +1626,11 @@ void p3ChatService::statusChange(const std::list<pqipeer> &plist)
|
|||||||
IndicateConfigChanged();
|
IndicateConfigChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (it->actions & RS_PEER_MOVED) {
|
||||||
|
/* now handle remove */
|
||||||
|
clearPrivateChatQueue(true, it->id);
|
||||||
|
clearPrivateChatQueue(false, it->id);
|
||||||
|
mHistoryMgr->clear(it->id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user