* Improved error handling for settings. LibTorrent now consistently

throws torrent::input_error and rtorrent catches those and prints good
error messages.

* torrent::set_{bind,local}_address now accepts dns addresses.

* Fixed bug that caused multiple instances of the setting
up/download_rate to change the relative rate, rather than constant.

* Minor change to the way PCB decides to not request more pieces.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@601 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2005-11-24 17:21:32 +00:00
parent 93c6369b69
commit 98a8fc8638
11 changed files with 140 additions and 191 deletions
+2 -1
View File
@@ -40,6 +40,7 @@
#include <sigc++/bind.h>
#include <sigc++/hide.h>
#include <sigc++/signal.h>
#include <torrent/exceptions.h>
#include "download.h"
@@ -128,7 +129,7 @@ Download::string_to_connection_type(const std::string& name) {
else if (name == "seed")
return torrent::Download::CONNECTION_SEED;
else
throw std::runtime_error("Invalid connection type selected: \"" + name + "\"");
throw torrent::input_error("Unknown peer connection type selected: \"" + name + "\"");
}
const char*
+3 -3
View File
@@ -82,11 +82,11 @@ Manager::Manager() :
void
Manager::initialize_first() {
if ((m_pollManager = PollManagerEPoll::create(sysconf(_SC_OPEN_MAX))) != NULL)
m_logImportant.push_front("Using 'epoll' based polling");
m_logImportant.push_front("Using 'epoll' based polling.");
else if ((m_pollManager = PollManagerSelect::create(sysconf(_SC_OPEN_MAX))) != NULL)
m_logImportant.push_front("Using 'select' based polling");
m_logImportant.push_front("Using 'select' based polling.");
else
throw std::runtime_error("Could not create any PollManager");
throw std::runtime_error("Could not create any PollManager.");
// Need to initialize this before parseing options.
torrent::initialize(m_pollManager->get_torrent_poll());