mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-10-13 04:36:16 +00:00
Added "-b" for binding the listening ip addresse.
Throw an error if no listening port is opened. git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@386 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
@@ -5,10 +5,10 @@ LICENSE
|
|||||||
|
|
||||||
Options and flags:
|
Options and flags:
|
||||||
|
|
||||||
|
-b <a.b.c.d> Bind the listening socket to this IP.
|
||||||
-i <a.b.c.d> Set the IP address sent to the tracker.
|
-i <a.b.c.d> Set the IP address sent to the tracker.
|
||||||
|
|
||||||
-p <a-b> Open a port in the range a to b.
|
-p <a-b> Open a port in the range a to b.
|
||||||
|
|
||||||
-s <dir> Use <dir> as the session directory. The torrents will be
|
-s <dir> Use <dir> as the session directory. The torrents will be
|
||||||
saved with the info-hash in hex as the filename.
|
saved with the info-hash in hex as the filename.
|
||||||
|
|
||||||
|
|||||||
@@ -26,4 +26,11 @@ Make accumulate return the value, no refs please...
|
|||||||
|
|
||||||
Make sure it gracefully handles torrents that fail to open files.
|
Make sure it gracefully handles torrents that fail to open files.
|
||||||
|
|
||||||
Make throttle show off on 0 and up/down.
|
Bug: Add the same torrent while it is hash checking.
|
||||||
|
|
||||||
|
|
||||||
|
RELEASE:
|
||||||
|
|
||||||
|
Enable change of default download path.
|
||||||
|
|
||||||
|
Make sure we show better messages for signal_storage_error.
|
||||||
|
|||||||
@@ -36,12 +36,14 @@ Download::set_download(torrent::Download d) {
|
|||||||
|
|
||||||
m_connTrackerSucceded = m_download.signal_tracker_succeded(sigc::bind(sigc::mem_fun(*this, &Download::receive_tracker_msg), ""));
|
m_connTrackerSucceded = m_download.signal_tracker_succeded(sigc::bind(sigc::mem_fun(*this, &Download::receive_tracker_msg), ""));
|
||||||
m_connTrackerFailed = m_download.signal_tracker_failed(sigc::mem_fun(*this, &Download::receive_tracker_msg));
|
m_connTrackerFailed = m_download.signal_tracker_failed(sigc::mem_fun(*this, &Download::receive_tracker_msg));
|
||||||
|
m_connStorageError = m_download.signal_storage_error(sigc::mem_fun(*this, &Download::receive_tracker_msg));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Download::release_download() {
|
Download::release_download() {
|
||||||
m_connTrackerSucceded.disconnect();
|
m_connTrackerSucceded.disconnect();
|
||||||
m_connTrackerFailed.disconnect();
|
m_connTrackerFailed.disconnect();
|
||||||
|
m_connStorageError.disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ private:
|
|||||||
|
|
||||||
sigc::connection m_connTrackerSucceded;
|
sigc::connection m_connTrackerSucceded;
|
||||||
sigc::connection m_connTrackerFailed;
|
sigc::connection m_connTrackerFailed;
|
||||||
|
sigc::connection m_connStorageError;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -48,7 +48,9 @@ Manager::initialize() {
|
|||||||
CurlStack::init();
|
CurlStack::init();
|
||||||
|
|
||||||
torrent::initialize();
|
torrent::initialize();
|
||||||
torrent::listen_open(m_portFirst, m_portLast);
|
|
||||||
|
if (!torrent::listen_open(m_portFirst, m_portLast, m_listenIp))
|
||||||
|
throw std::runtime_error("Could not open port for listening.");
|
||||||
|
|
||||||
// Register log signals.
|
// Register log signals.
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-3
@@ -62,12 +62,13 @@ public:
|
|||||||
void start(Download* d);
|
void start(Download* d);
|
||||||
void stop(Download* d);
|
void stop(Download* d);
|
||||||
|
|
||||||
const std::string& get_dns() { return m_dns; }
|
const std::string& get_dns() { return m_dns; }
|
||||||
void set_dns(const std::string& dns);
|
void set_dns(const std::string& dns);
|
||||||
|
|
||||||
void set_port_range(int a, int b) { m_portFirst = a; m_portLast = b; }
|
void set_port_range(int a, int b) { m_portFirst = a; m_portLast = b; }
|
||||||
|
void set_listen_ip(const std::string& ip) { m_listenIp = ip; }
|
||||||
|
|
||||||
void debug_tracker() { m_debugTracker = 0; }
|
void debug_tracker() { m_debugTracker = 0; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void receive_http_done(CurlGet* http);
|
void receive_http_done(CurlGet* http);
|
||||||
@@ -92,6 +93,7 @@ private:
|
|||||||
std::string m_dns;
|
std::string m_dns;
|
||||||
int m_portFirst;
|
int m_portFirst;
|
||||||
int m_portLast;
|
int m_portLast;
|
||||||
|
std::string m_listenIp;
|
||||||
|
|
||||||
int m_debugTracker;
|
int m_debugTracker;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -42,11 +42,18 @@ WindowStatusbar::redraw() {
|
|||||||
m_nextDraw = utils::Timer::cache().round_seconds() + 1000000;
|
m_nextDraw = utils::Timer::cache().round_seconds() + 1000000;
|
||||||
|
|
||||||
m_canvas->erase();
|
m_canvas->erase();
|
||||||
m_canvas->print(0, 0, "Throttle: %i Listen: %s:%i Handshakes: %i",
|
|
||||||
(int)torrent::get(torrent::THROTTLE_ROOT_CONST_RATE) / 1024,
|
if (torrent::get(torrent::THROTTLE_ROOT_CONST_RATE) == 0)
|
||||||
m_core->get_dns().empty() ? "<default>" : m_core->get_dns().c_str(),
|
m_canvas->print(0, 0, "Throttle: off Listen: %s:%i Handshakes: %i",
|
||||||
(int)torrent::get(torrent::LISTEN_PORT),
|
m_core->get_dns().empty() ? "<default>" : m_core->get_dns().c_str(),
|
||||||
(int)torrent::get(torrent::HANDSHAKES_TOTAL));
|
(int)torrent::get(torrent::LISTEN_PORT),
|
||||||
|
(int)torrent::get(torrent::HANDSHAKES_TOTAL));
|
||||||
|
else
|
||||||
|
m_canvas->print(0, 0, "Throttle: %i Listen: %s:%i Handshakes: %i",
|
||||||
|
(int)torrent::get(torrent::THROTTLE_ROOT_CONST_RATE) / 1024,
|
||||||
|
m_core->get_dns().empty() ? "<default>" : m_core->get_dns().c_str(),
|
||||||
|
(int)torrent::get(torrent::LISTEN_PORT),
|
||||||
|
(int)torrent::get(torrent::HANDSHAKES_TOTAL));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-1
@@ -92,7 +92,10 @@ int
|
|||||||
parse_options(ui::Control* c, int argc, char** argv) {
|
parse_options(ui::Control* c, int argc, char** argv) {
|
||||||
OptionParser optionParser;
|
OptionParser optionParser;
|
||||||
optionParser.insert_flag('h', sigc::ptr_fun(&print_help));
|
optionParser.insert_flag('h', sigc::ptr_fun(&print_help));
|
||||||
|
|
||||||
|
optionParser.insert_option('b', sigc::mem_fun(c->get_core(), &core::Manager::set_listen_ip));
|
||||||
optionParser.insert_option('i', sigc::mem_fun(c->get_core(), &core::Manager::set_dns));
|
optionParser.insert_option('i', sigc::mem_fun(c->get_core(), &core::Manager::set_dns));
|
||||||
|
|
||||||
optionParser.insert_option('p', sigc::bind(sigc::ptr_fun(OptionParser::call_int_pair),
|
optionParser.insert_option('p', sigc::bind(sigc::ptr_fun(OptionParser::call_int_pair),
|
||||||
sigc::mem_fun(c->get_core(), &core::Manager::set_port_range)));
|
sigc::mem_fun(c->get_core(), &core::Manager::set_port_range)));
|
||||||
optionParser.insert_option('s', sigc::mem_fun(c->get_core().get_download_store(), &core::DownloadStore::activate));
|
optionParser.insert_option('s', sigc::mem_fun(c->get_core().get_download_store(), &core::DownloadStore::activate));
|
||||||
@@ -224,7 +227,8 @@ print_help() {
|
|||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
std::cout << "Usage: rtorrent [OPTIONS]... [FILE]... [URL]..." << std::endl;
|
std::cout << "Usage: rtorrent [OPTIONS]... [FILE]... [URL]..." << std::endl;
|
||||||
std::cout << " -h Display this very helpful text" << std::endl;
|
std::cout << " -h Display this very helpful text" << std::endl;
|
||||||
std::cout << " -i <a.b.c.d> Set the IP address that is sent to the tracker" << std::endl;
|
std::cout << " -b <a.b.c.d> Bind the listening socket to this IP" << std::endl;
|
||||||
|
std::cout << " -i <a.b.c.d> Change the IP that is sent to the tracker" << std::endl;
|
||||||
std::cout << " -p <int>-<int> Set port range for incoming connections" << std::endl;
|
std::cout << " -p <int>-<int> Set port range for incoming connections" << std::endl;
|
||||||
std::cout << " -s <directory> Set the session directory" << std::endl;
|
std::cout << " -s <directory> Set the session directory" << std::endl;
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
|
|||||||
Reference in New Issue
Block a user