Browse Source

rework initialization order a little, try to start torrents after dht comes up

miguelfreitas
Miguel Freitas 11 years ago
parent
commit
019da72568
  1. 34
      src/twister.cpp

34
src/twister.cpp

@ -161,21 +161,31 @@ void ThreadWaitExtIP()
settings.anonymous_mode = false; // (false => send peer_id, avoid connecting to itself) settings.anonymous_mode = false; // (false => send peer_id, avoid connecting to itself)
ses->set_settings(settings); ses->set_settings(settings);
printf("libtorrent + dht started\n");
boost::filesystem::path userDataPath = GetDataDir() / "user_data"; // wait up to 10 seconds for dht nodes to be set
loadUserData(userDataPath.string(), m_users); for( int i = 0; i < 10; i++ ) {
printf("loaded user_data for %zd users\n", m_users.size()); MilliSleep(1000);
session_status ss = ses->status();
if( ss.dht_nodes )
break;
}
// now restart the user torrents (all m_following) {
std::map<std::string,UserData>::const_iterator i; LOCK(cs_twister);
for (i = m_users.begin(); i != m_users.end(); ++i) { boost::filesystem::path userDataPath = GetDataDir() / "user_data";
UserData const &data = i->second; loadUserData(userDataPath.string(), m_users);
BOOST_FOREACH(string username, data.m_following) { printf("loaded user_data for %zd users\n", m_users.size());
startTorrentUser(username);
// now restart the user torrents (all m_following)
std::map<std::string,UserData>::const_iterator i;
for (i = m_users.begin(); i != m_users.end(); ++i) {
UserData const &data = i->second;
BOOST_FOREACH(string username, data.m_following) {
startTorrentUser(username);
}
} }
} }
printf("libtorrent + dht started\n");
} }
void ThreadMaintainDHTNodes() void ThreadMaintainDHTNodes()
@ -183,7 +193,7 @@ void ThreadMaintainDHTNodes()
RenameThread("maintain-dht-nodes"); RenameThread("maintain-dht-nodes");
while(1) { while(1) {
MilliSleep(15000); MilliSleep(5000);
bool nodesAdded = false; bool nodesAdded = false;
if( ses ) { if( ses ) {

Loading…
Cancel
Save