Bugfixes galore!

* Split p3bitdht_peers.cc debugging in two. Hid Id Translation debug (that code is fine)
 * Added initialisation of p3bitdht peer data structure (using values from peernet).
 * Added BITDHT_QFLAGS_UPDATES flag.
 * Added Tick() interface to NetAssistConnect  interface, tick it from p3NetMgr.
 * FIXED OLD BUG: netAssistFriend was not being called from p3LinkMgr::connectResult() this meant all peers where being searched for.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4423 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
drbob 2011-07-10 19:50:12 +00:00
parent d6e2d959be
commit f7ff55237e
6 changed files with 170 additions and 52 deletions

View file

@ -659,8 +659,7 @@ bool p3LinkMgr::connectAttempt(const std::string &id, struct sockaddr_in &addr,
bool p3LinkMgr::connectResult(const std::string &id, bool success, uint32_t flags, struct sockaddr_in remote_peer_address)
{
bool should_netAssistFriend_false = false ;
bool should_netAssistFriend_true = false ;
bool doDhtAssist = false ;
bool updatePeerAddr = false;
{
RsStackMutex stack(mLinkMtx); /****** STACK LOCK MUTEX *******/
@ -687,7 +686,7 @@ bool p3LinkMgr::connectResult(const std::string &id, bool success, uint32_t flag
if (it == mFriendList.end())
{
#ifdef LINKMGR_DEBUG
std::cerr << "p3LinkMgr::connectResult() Failed, missing Friend " << " id: " << id << std::endl;
std::cerr << "p3LinkMgr::connectResult() ERROR, missing Friend " << " id: " << id << std::endl;
#endif
return false;
}
@ -738,9 +737,7 @@ bool p3LinkMgr::connectResult(const std::string &id, bool success, uint32_t flag
/* remove other attempts */
it->second.inConnAttempt = false;
it->second.connAddrs.clear();
should_netAssistFriend_false = true ;
mStatusChanged = true;
return true;
}
else
{
@ -759,8 +756,6 @@ bool p3LinkMgr::connectResult(const std::string &id, bool success, uint32_t flag
mStatusChanged = true;
it->second.lastcontact = time(NULL); /* time of disconnect */
should_netAssistFriend_true = true ;
}
if (it->second.connAddrs.size() >= 1)
@ -768,6 +763,11 @@ bool p3LinkMgr::connectResult(const std::string &id, bool success, uint32_t flag
it->second.actions |= RS_PEER_CONNECT_REQ;
mStatusChanged = true;
}
if (it->second.dhtVisible)
{
doDhtAssist = true;
}
}
}
@ -778,15 +778,43 @@ bool p3LinkMgr::connectResult(const std::string &id, bool success, uint32_t flag
raddr.mSeenTime = time(NULL);
raddr.mSrc = 0;
#ifdef LINKMGR_DEBUG
std::cerr << "p3LinkMgr::connectResult() SUCCESS and we initiated connection... Updating Address";
std::cerr << std::endl;
#endif
mPeerMgr->updateCurrentAddress(id, raddr);
}
if(should_netAssistFriend_true)
mNetMgr->netAssistFriend(id,true) ;
if(should_netAssistFriend_false)
mNetMgr->netAssistFriend(id,false) ;
return true;
if (success)
{
#ifdef LINKMGR_DEBUG
std::cerr << "p3LinkMgr::connectResult() SUCCESS switching off DhtAssist for friend: " << id;
std::cerr << std::endl;
#endif
/* always switch it off now */
mNetMgr->netAssistFriend(id,false) ;
}
else
{
if (doDhtAssist)
{
#ifdef LINKMGR_DEBUG
std::cerr << "p3LinkMgr::connectResult() FAIL, Enabling DhtAssist for: " << id;
std::cerr << std::endl;
#endif
mNetMgr->netAssistFriend(id,true) ;
}
else
{
#ifdef LINKMGR_DEBUG
std::cerr << "p3LinkMgr::connectResult() FAIL, No DhtAssist, as No DHT visibility for: " << id;
std::cerr << std::endl;
#endif
}
}
return success;
}
/******************************** Feedback ...... *********************************