discovery: don't remove new added locations too soon

was: removed after 10 min. or less - when no connection is established
now: removed after 1 day - when no connection is established
This commit is contained in:
sehraf 2016-02-16 20:20:41 +01:00
parent efadc7d2c6
commit 841299d077
3 changed files with 9 additions and 4 deletions

View File

@ -64,8 +64,6 @@ const uint32_t MIN_TIME_BETWEEN_NET_RESET = 5;
const uint32_t PEER_IP_CONNECT_STATE_MAX_LIST_SIZE = 4; const uint32_t PEER_IP_CONNECT_STATE_MAX_LIST_SIZE = 4;
#define VERY_OLD_PEER (90 * 24 * 3600) // 90 days.
/**** /****
* #define PEER_DEBUG 1 * #define PEER_DEBUG 1
***/ ***/
@ -2751,7 +2749,7 @@ bool p3PeerMgrIMPL::removeUnusedLocations()
std::map<RsPeerId, peerState>::iterator it; std::map<RsPeerId, peerState>::iterator it;
for(it = mFriendList.begin(); it != mFriendList.end(); ++it) for(it = mFriendList.begin(); it != mFriendList.end(); ++it)
{ {
if (now - it->second.lastcontact > VERY_OLD_PEER) if (now - it->second.lastcontact > RS_PEER_OLD_PEER)
{ {
toRemove.push_back(it->first); toRemove.push_back(it->first);

View File

@ -65,6 +65,9 @@ const uint32_t RS_NET_FLAGS_EXTERNAL_ADDR = 0x0008;
const uint32_t RS_NET_FLAGS_STABLE_UDP = 0x0010; const uint32_t RS_NET_FLAGS_STABLE_UDP = 0x0010;
const uint32_t RS_NET_FLAGS_TRUSTS_ME = 0x0020; const uint32_t RS_NET_FLAGS_TRUSTS_ME = 0x0020;
/* remove locations offline since 90 days */
const time_t RS_PEER_OLD_PEER = (90 * 24 * 3600);
class peerState class peerState
{ {
public: public:

View File

@ -24,6 +24,7 @@
*/ */
#include "services/p3discovery2.h" #include "services/p3discovery2.h"
#include "pqi/p3peermgr.h"
#include "util/rsversioninfo.h" #include "util/rsversioninfo.h"
#include "retroshare/rsiface.h" #include "retroshare/rsiface.h"
@ -930,7 +931,10 @@ void p3discovery2::processContactInfo(const SSLID &fromId, const RsDiscContactIt
// We pass RS_NODE_PERM_ALL because the PGP id is already a friend, so we should keep the existing // We pass RS_NODE_PERM_ALL because the PGP id is already a friend, so we should keep the existing
// permission flags. Therefore the mask needs to be 0xffff. // permission flags. Therefore the mask needs to be 0xffff.
mPeerMgr->addFriend(item->sslId, item->pgpId, item->netMode, RS_VS_DISC_OFF, RS_VS_DHT_FULL,(time_t)0,RS_NODE_PERM_ALL); // set last seen to RS_PEER_OLD_PEER minus 1 day so that the DHT has a fair chance to establish a connection
// before the location gets automatically removed again
mPeerMgr->addFriend(item->sslId, item->pgpId, item->netMode, RS_VS_DISC_OFF, RS_VS_DHT_FULL, time(NULL) - RS_PEER_OLD_PEER + (24 * 3600), RS_NODE_PERM_ALL);
updatePeerAddresses(item); updatePeerAddresses(item);
} }
} }