- Manage country resolution on libtorrent side. The flags are not displayed in the peer list yet though

This commit is contained in:
Christophe Dumez 2009-11-15 10:59:11 +00:00
parent f7f4d1333b
commit 12106c308e
4 changed files with 31 additions and 0 deletions

View file

@ -59,6 +59,7 @@ enum ProxyType {HTTP=1, SOCKS5=2, HTTP_PW=3, SOCKS5_PW=4};
// Main constructor
bittorrent::bittorrent() : DHTEnabled(false), preAllocateAll(false), addInPause(false), maxConnecsPerTorrent(500), maxUploadsPerTorrent(4), ratio_limit(-1), UPnPEnabled(false), NATPMPEnabled(false), LSDEnabled(false), queueingEnabled(false) {
resolve_countries = false;
// To avoid some exceptions
fs::path::default_name_check(fs::no_check);
// Creating bittorrent session
@ -262,6 +263,19 @@ void bittorrent::configureSession() {
// Enabled
setUploadRateLimit(up_limit*1024);
}
// Resolve countries
bool new_resolv_countries = Preferences::resolvePeerCountries();
if(resolve_countries != new_resolv_countries) {
resolve_countries = new_resolv_countries;
// Update torrent handles
std::vector<torrent_handle> torrents = getTorrents();
std::vector<torrent_handle>::iterator torrentIT;
for(torrentIT = torrents.begin(); torrentIT != torrents.end(); torrentIT++) {
QTorrentHandle h = QTorrentHandle(*torrentIT);
if(h.is_valid())
h.resolve_countries(resolve_countries);
}
}
// * UPnP
if(Preferences::isUPnPEnabled()) {
enableUPnP(true);
@ -653,6 +667,8 @@ QTorrentHandle bittorrent::addMagnetUri(QString magnet_uri, bool resumed) {
h.set_max_connections(maxConnecsPerTorrent);
// Uploads limit per torrent
h.set_max_uploads(maxUploadsPerTorrent);
// Resolve countries
h.resolve_countries(resolve_countries);
// Load filtered files
if(resumed) {
// Load custom url seeds
@ -825,6 +841,8 @@ QTorrentHandle bittorrent::addTorrent(QString path, bool fromScanDir, QString fr
h.set_max_connections(maxConnecsPerTorrent);
// Uploads limit per torrent
h.set_max_uploads(maxUploadsPerTorrent);
// Resolve countries
h.resolve_countries(resolve_countries);
// Load filtered files
loadFilesPriorities(h);
if(resumed) {