mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-10-13 04:36:16 +00:00
Fixed threaded tracker feature compatibility.
This commit is contained in:
@@ -322,7 +322,7 @@ retrieve_d_bitfield(core::Download* download) {
|
|||||||
struct call_add_d_peer_t {
|
struct call_add_d_peer_t {
|
||||||
call_add_d_peer_t(core::Download* d, int port) : m_download(d), m_port(port) { }
|
call_add_d_peer_t(core::Download* d, int port) : m_download(d), m_port(port) { }
|
||||||
|
|
||||||
void operator() (const sockaddr* sa, int err) {
|
void operator() (const sockaddr* sa, [[maybe_unused]] int err) {
|
||||||
if (sa == NULL) {
|
if (sa == NULL) {
|
||||||
lt_log_print(torrent::LOG_TORRENT_WARN, "could not resolve hostname for added peer");
|
lt_log_print(torrent::LOG_TORRENT_WARN, "could not resolve hostname for added peer");
|
||||||
} else {
|
} else {
|
||||||
@@ -627,7 +627,6 @@ d_list_remove(core::Download* download, const torrent::Object& rawArgs, const ch
|
|||||||
#define CMD2_BIND_FL std::bind(&core::Download::file_list, std::placeholders::_1)
|
#define CMD2_BIND_FL std::bind(&core::Download::file_list, std::placeholders::_1)
|
||||||
#define CMD2_BIND_PL std::bind(&core::Download::c_peer_list, std::placeholders::_1)
|
#define CMD2_BIND_PL std::bind(&core::Download::c_peer_list, std::placeholders::_1)
|
||||||
#define CMD2_BIND_TL std::bind(&core::Download::tracker_list, std::placeholders::_1)
|
#define CMD2_BIND_TL std::bind(&core::Download::tracker_list, std::placeholders::_1)
|
||||||
#define CMD2_BIND_TC std::bind(&core::Download::tracker_controller, std::placeholders::_1)
|
|
||||||
|
|
||||||
#define CMD2_BIND_INFO std::bind(&core::Download::info, std::placeholders::_1)
|
#define CMD2_BIND_INFO std::bind(&core::Download::info, std::placeholders::_1)
|
||||||
#define CMD2_BIND_DATA std::bind(&core::Download::data, std::placeholders::_1)
|
#define CMD2_BIND_DATA std::bind(&core::Download::data, std::placeholders::_1)
|
||||||
@@ -881,7 +880,7 @@ initialize_command_download() {
|
|||||||
CMD2_DL ("d.tracker_size", std::bind(&core::Download::tracker_list_size, std::placeholders::_1));
|
CMD2_DL ("d.tracker_size", std::bind(&core::Download::tracker_list_size, std::placeholders::_1));
|
||||||
|
|
||||||
CMD2_DL_LIST ("d.tracker.insert", std::bind(&download_tracker_insert, std::placeholders::_1, std::placeholders::_2));
|
CMD2_DL_LIST ("d.tracker.insert", std::bind(&download_tracker_insert, std::placeholders::_1, std::placeholders::_2));
|
||||||
CMD2_DL_VALUE_V ("d.tracker.send_scrape", std::bind(&torrent::TrackerController::scrape_request, CMD2_BIND_TC, std::placeholders::_2));
|
CMD2_DL_VALUE_V ("d.tracker.send_scrape", [](auto download, uint64_t arg) { download->tracker_controller().scrape_request(arg); });
|
||||||
|
|
||||||
CMD2_DL ("d.directory", CMD2_ON_FL(root_dir));
|
CMD2_DL ("d.directory", CMD2_ON_FL(root_dir));
|
||||||
CMD2_DL_STRING_V("d.directory.set", std::bind(&apply_d_directory, std::placeholders::_1, std::placeholders::_2));
|
CMD2_DL_STRING_V("d.directory.set", std::bind(&apply_d_directory, std::placeholders::_1, std::placeholders::_2));
|
||||||
|
|||||||
+3
-5
@@ -59,7 +59,6 @@ public:
|
|||||||
typedef torrent::FileList file_list_type;
|
typedef torrent::FileList file_list_type;
|
||||||
typedef torrent::PeerList peer_list_type;
|
typedef torrent::PeerList peer_list_type;
|
||||||
typedef torrent::TrackerList tracker_list_type;
|
typedef torrent::TrackerList tracker_list_type;
|
||||||
typedef torrent::TrackerController tracker_controller_type;
|
|
||||||
typedef torrent::ConnectionList connection_list_type;
|
typedef torrent::ConnectionList connection_list_type;
|
||||||
typedef download_type::ConnectionType connection_type;
|
typedef download_type::ConnectionType connection_type;
|
||||||
|
|
||||||
@@ -102,10 +101,9 @@ public:
|
|||||||
|
|
||||||
torrent::Object* bencode() { return m_download.bencode(); }
|
torrent::Object* bencode() { return m_download.bencode(); }
|
||||||
|
|
||||||
tracker_list_type* tracker_list() { return m_download.tracker_list(); }
|
torrent::TrackerControllerWrapper tracker_controller() { return m_download.tracker_controller(); }
|
||||||
uint32_t tracker_list_size() const { return m_download.tracker_list()->size(); }
|
tracker_list_type* tracker_list() { return m_download.tracker_list(); }
|
||||||
|
uint32_t tracker_list_size() const { return m_download.tracker_list()->size(); }
|
||||||
tracker_controller_type* tracker_controller() { return m_download.tracker_controller(); }
|
|
||||||
|
|
||||||
connection_list_type* connection_list() { return m_download.connection_list(); }
|
connection_list_type* connection_list() { return m_download.connection_list(); }
|
||||||
uint32_t connection_list_size() const;
|
uint32_t connection_list_size() const;
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ WindowDownloadStatusbar::redraw() {
|
|||||||
print_download_status(buffer, last, m_download);
|
print_download_status(buffer, last, m_download);
|
||||||
m_canvas->print(0, 2, "[%c:%i] %s",
|
m_canvas->print(0, 2, "[%c:%i] %s",
|
||||||
m_download->tracker_list()->has_active() ? 'C' : ' ',
|
m_download->tracker_list()->has_active() ? 'C' : ' ',
|
||||||
(int)(m_download->download()->tracker_controller()->seconds_to_next_timeout()),
|
(int)(m_download->download()->tracker_controller().seconds_to_next_timeout()),
|
||||||
buffer);
|
buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,14 +26,14 @@ WindowTrackerList::redraw() {
|
|||||||
m_canvas->erase();
|
m_canvas->erase();
|
||||||
|
|
||||||
unsigned int pos = 0;
|
unsigned int pos = 0;
|
||||||
torrent::TrackerList* tl = m_download->tracker_list();
|
auto tl = m_download->tracker_list();
|
||||||
torrent::TrackerController* tc = m_download->tracker_controller();
|
auto tc = m_download->tracker_controller();
|
||||||
|
|
||||||
m_canvas->print(2, pos, "Trackers: [Key: %08x] [%s %s %s]",
|
m_canvas->print(2, pos, "Trackers: [Key: %08x] [%s %s %s]",
|
||||||
tl->key(),
|
tl->key(),
|
||||||
tc->is_requesting() ? "req" : " ",
|
tc.is_requesting() ? "req" : " ",
|
||||||
tc->is_promiscuous_mode() ? "prom" : " ",
|
tc.is_promiscuous_mode() ? "prom" : " ",
|
||||||
tc->is_failure_mode() ? "fail" : " ");
|
tc.is_failure_mode() ? "fail" : " ");
|
||||||
++pos;
|
++pos;
|
||||||
|
|
||||||
if (tl->size() == 0 || *m_focus >= tl->size())
|
if (tl->size() == 0 || *m_focus >= tl->size())
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ CPPUNIT_TEST_SUITE_REGISTRATION(CommandTest);
|
|||||||
|
|
||||||
bool
|
bool
|
||||||
command_stack_all_empty() {
|
command_stack_all_empty() {
|
||||||
return std::find_if(rpc::command_base::stack_begin(), rpc::command_base::stack_end(),
|
return std::all_of(rpc::command_base::stack_begin(), rpc::command_base::stack_end(),
|
||||||
std::mem_fun_ref(&torrent::Object::is_not_empty)) == rpc::command_base::stack_end();
|
[](auto& obj) { return obj.is_empty(); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
Reference in New Issue
Block a user