add network reset ehancement for stun and udp

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1760 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
joss17 2009-10-30 00:38:37 +00:00
parent 1d5c11c65b
commit f090ee87b6

View File

@ -697,14 +697,6 @@ void p3ConnectMgr::netUdpCheck()
#endif
struct sockaddr_in tmpip ;
//don't check it if the udp init is not finished
time_t delta = time(NULL) - mNetInitTS;
#ifdef CONN_DEBUG
std::cerr << "p3ConnectMgr time since last reset : " << delta << std::endl;
#endif
if (delta < MAX_UDP_INIT) {
return;
}
if (udpExtAddressCheck() || (mUpnpAddrValid) || (use_extr_addr_finder && mExtAddrFinder->hasValidIP(&tmpip)))
{
@ -818,6 +810,17 @@ void p3ConnectMgr::netUdpCheck()
{
netUnreachableCheck();
}
} else {
//don't do a reset it if the udp init is not finished
time_t delta = time(NULL) - mNetInitTS;
#ifdef CONN_DEBUG
std::cerr << "p3ConnectMgr time since last reset : " << delta << std::endl;
#endif
if (delta > MAX_UDP_INIT) {
//if we got no external ip address let's do a network reset
netReset();
}
}
}
@ -1069,7 +1072,15 @@ bool p3ConnectMgr::stunCheck()
std::cerr << "Resetting Network" << std::endl;
#endif
netReset();
//don't do a reset it if the udp init is not finished
time_t delta = time(NULL) - mNetInitTS;
#ifdef CONN_DEBUG
std::cerr << "p3ConnectMgr time since last reset : " << delta << std::endl;
#endif
if (delta > MAX_UDP_INIT) {
//stun failed let's do a network reset
netReset();
}
}
#ifdef CONN_DEBUG