mirror of
https://github.com/twisterarmy/twister-core.git
synced 2025-01-10 14:58:05 +00:00
fix dm store duplicate checking. i did it completely wrong before.
This commit is contained in:
parent
34024136ae
commit
e5b21d6810
@ -593,7 +593,18 @@ bool processReceivedDM(lazy_entry const* post)
|
|||||||
stoDM.m_utcTime = post->dict_find_int_value("time");;
|
stoDM.m_utcTime = post->dict_find_int_value("time");;
|
||||||
|
|
||||||
LOCK(cs_twister);
|
LOCK(cs_twister);
|
||||||
m_users[item.second.username].m_directmsg[n].push_back(stoDM);
|
// store this dm in memory list, but prevent duplicates
|
||||||
|
std::list<StoredDirectMsg> &dmsFromToUser = m_users[item.second.username].m_directmsg[n];
|
||||||
|
std::list<StoredDirectMsg>::const_iterator it;
|
||||||
|
for( it = dmsFromToUser.begin(); it != dmsFromToUser.end(); ++it ) {
|
||||||
|
if( stoDM.m_utcTime == (*it).m_utcTime &&
|
||||||
|
stoDM.m_text == (*it).m_text ) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( it == dmsFromToUser.end() ) {
|
||||||
|
dmsFromToUser.push_back(stoDM);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1002,30 +1013,19 @@ Value newdirectmsg(const Array& params, bool fHelp)
|
|||||||
if( !acceptSignedPost(buf.data(),buf.size(),strFrom,k,errmsg,NULL) )
|
if( !acceptSignedPost(buf.data(),buf.size(),strFrom,k,errmsg,NULL) )
|
||||||
throw JSONRPCError(RPC_INVALID_PARAMS,errmsg);
|
throw JSONRPCError(RPC_INVALID_PARAMS,errmsg);
|
||||||
|
|
||||||
|
{
|
||||||
|
StoredDirectMsg stoDM;
|
||||||
|
stoDM.m_fromMe = true;
|
||||||
|
stoDM.m_text = strMsg;
|
||||||
|
stoDM.m_utcTime = v["userpost"]["time"].integer();
|
||||||
|
|
||||||
|
LOCK(cs_twister);
|
||||||
|
m_users[strFrom].m_directmsg[strTo].push_back(stoDM);
|
||||||
|
}
|
||||||
|
|
||||||
torrent_handle h = startTorrentUser(strFrom);
|
torrent_handle h = startTorrentUser(strFrom);
|
||||||
h.add_piece(k,buf.data(),buf.size());
|
h.add_piece(k,buf.data(),buf.size());
|
||||||
|
|
||||||
StoredDirectMsg stoDM;
|
|
||||||
stoDM.m_fromMe = true;
|
|
||||||
stoDM.m_text = strMsg;
|
|
||||||
stoDM.m_utcTime = v["userpost"]["time"].integer();
|
|
||||||
{
|
|
||||||
LOCK(cs_twister);
|
|
||||||
|
|
||||||
std::list<StoredDirectMsg> &dmsFromToUser = m_users[strFrom].m_directmsg[strTo];
|
|
||||||
std::list<StoredDirectMsg>::const_iterator it;
|
|
||||||
// prevent duplicates
|
|
||||||
for( it = dmsFromToUser.begin(); it != dmsFromToUser.end(); ++it ) {
|
|
||||||
if( stoDM.m_utcTime == (*it).m_utcTime &&
|
|
||||||
stoDM.m_text == (*it).m_text ) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if( it != dmsFromToUser.end() ) {
|
|
||||||
dmsFromToUser.push_back(stoDM);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return entryToJson(v);
|
return entryToJson(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user