summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-07-19 05:37:40 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-07-19 05:37:40 +0000
commitda668763a682e97b897f75af22b35e269f63261a (patch)
treed352dab71b9a840d76a6f532f69634e4fbb487fb /src
parenta6a18e9ffeaaefa1cada3f5f280befe6939912a4 (diff)
2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added hidden select-least-used-host option. * src/CreateRequestCommand.cc * src/OptionHandlerFactory.cc * src/TrackerWatcherCommand.cc * src/prefs.cc * src/prefs.h
Diffstat (limited to 'src')
-rw-r--r--src/CreateRequestCommand.cc4
-rw-r--r--src/OptionHandlerFactory.cc8
-rw-r--r--src/TrackerWatcherCommand.cc1
-rw-r--r--src/prefs.cc2
-rw-r--r--src/prefs.h2
5 files changed, 16 insertions, 1 deletions
diff --git a/src/CreateRequestCommand.cc b/src/CreateRequestCommand.cc
index c7373fc7..2a8dfad0 100644
--- a/src/CreateRequestCommand.cc
+++ b/src/CreateRequestCommand.cc
@@ -72,7 +72,9 @@ bool CreateRequestCommand::executeInternal()
(getSegments().front()->getPositionToWrite()));
}
std::vector<std::pair<size_t, std::string> > usedHosts;
- getDownloadEngine()->getRequestGroupMan()->getUsedHosts(usedHosts);
+ if(getOption()->getAsBool(PREF_SELECT_LEAST_USED_HOST)) {
+ getDownloadEngine()->getRequestGroupMan()->getUsedHosts(usedHosts);
+ }
setRequest
(getFileEntry()->getRequest(getRequestGroup()->getURISelector(),
getOption()->getAsBool(PREF_REUSE_URI),
diff --git a/src/OptionHandlerFactory.cc b/src/OptionHandlerFactory.cc
index d7c228d6..a1df7357 100644
--- a/src/OptionHandlerFactory.cc
+++ b/src/OptionHandlerFactory.cc
@@ -505,6 +505,14 @@ OptionHandlers OptionHandlerFactory::createOptionHandlers()
handlers.push_back(op);
}
{
+ SharedHandle<OptionHandler> op(new BooleanOptionHandler
+ (PREF_SELECT_LEAST_USED_HOST,
+ NO_DEFAULT_VALUE,
+ V_TRUE));
+ op->hide();
+ handlers.push_back(op);
+ }
+ {
SharedHandle<OptionHandler> op(new NumberOptionHandler
(PREF_STOP,
TEXT_STOP,
diff --git a/src/TrackerWatcherCommand.cc b/src/TrackerWatcherCommand.cc
index f2a1faaf..fe741501 100644
--- a/src/TrackerWatcherCommand.cc
+++ b/src/TrackerWatcherCommand.cc
@@ -242,6 +242,7 @@ TrackerWatcherCommand::createRequestGroup(const std::string& uri)
rg->getOption()->put(PREF_CONNECT_TIMEOUT,
rg->getOption()->get(PREF_BT_TRACKER_CONNECT_TIMEOUT));
rg->getOption()->put(PREF_REUSE_URI, V_FALSE);
+ rg->getOption()->put(PREF_SELECT_LEAST_USED_HOST, V_FALSE);
static const std::string TRACKER_ANNOUNCE_FILE("[tracker.announce]");
SharedHandle<DownloadContext> dctx
(new DownloadContext(getOption()->getAsInt(PREF_SEGMENT_SIZE),
diff --git a/src/prefs.cc b/src/prefs.cc
index eee818e2..61bcc5cb 100644
--- a/src/prefs.cc
+++ b/src/prefs.cc
@@ -196,6 +196,8 @@ const std::string PREF_MAX_CONNECTION_PER_SERVER("max-connection-per-server");
const std::string PREF_MIN_SPLIT_SIZE("min-split-size");
// value: true | false
const std::string PREF_CONDITIONAL_GET("conditional-get");
+// value: true | false
+const std::string PREF_SELECT_LEAST_USED_HOST("select-least-used-host");
/**
* FTP related preferences
diff --git a/src/prefs.h b/src/prefs.h
index 5beb93f7..7ba05f19 100644
--- a/src/prefs.h
+++ b/src/prefs.h
@@ -200,6 +200,8 @@ extern const std::string PREF_MAX_CONNECTION_PER_SERVER;
extern const std::string PREF_MIN_SPLIT_SIZE;
// value: true | false
extern const std::string PREF_CONDITIONAL_GET;
+// value: true | false
+extern const std::string PREF_SELECT_LEAST_USED_HOST;
/**
* FTP related preferences