Fixed threaded tracker feature compatibility.

This commit is contained in:
rakshasa
2025-02-08 18:12:09 +01:00
committed by Jari Sundell
parent 851ac469c3
commit 89b35af7a6
5 changed files with 21 additions and 24 deletions
+4 -5
View File
@@ -322,7 +322,7 @@ retrieve_d_bitfield(core::Download* download) {
struct call_add_d_peer_t {
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) {
lt_log_print(torrent::LOG_TORRENT_WARN, "could not resolve hostname for added peer");
} 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_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_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_DATA std::bind(&core::Download::data, std::placeholders::_1)
@@ -871,8 +870,8 @@ initialize_command_download() {
CMD2_DL ("d.wanted_chunks", CMD2_ON_DATA(wanted_chunks));
// Do not exposre d.tracker_announce.force to regular users.
CMD2_DL_V ("d.tracker_announce", std::bind(&torrent::Download::manual_request, CMD2_BIND_DL, false));
CMD2_DL_V ("d.tracker_announce.force", std::bind(&torrent::Download::manual_request, CMD2_BIND_DL, true));
CMD2_DL_V ("d.tracker_announce", std::bind(&torrent::Download::manual_request, CMD2_BIND_DL, false));
CMD2_DL_V ("d.tracker_announce.force", std::bind(&torrent::Download::manual_request, CMD2_BIND_DL, true));
CMD2_DL ("d.tracker_numwant", std::bind(&torrent::TrackerList::numwant, CMD2_BIND_TL));
CMD2_DL_VALUE_V ("d.tracker_numwant.set", std::bind(&torrent::TrackerList::set_numwant, CMD2_BIND_TL, std::placeholders::_2));
@@ -881,7 +880,7 @@ initialize_command_download() {
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_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_STRING_V("d.directory.set", std::bind(&apply_d_directory, std::placeholders::_1, std::placeholders::_2));
+3 -5
View File
@@ -59,7 +59,6 @@ public:
typedef torrent::FileList file_list_type;
typedef torrent::PeerList peer_list_type;
typedef torrent::TrackerList tracker_list_type;
typedef torrent::TrackerController tracker_controller_type;
typedef torrent::ConnectionList connection_list_type;
typedef download_type::ConnectionType connection_type;
@@ -102,10 +101,9 @@ public:
torrent::Object* bencode() { return m_download.bencode(); }
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(); }
torrent::TrackerControllerWrapper tracker_controller() { return m_download.tracker_controller(); }
tracker_list_type* tracker_list() { return m_download.tracker_list(); }
uint32_t tracker_list_size() const { return m_download.tracker_list()->size(); }
connection_list_type* connection_list() { return m_download.connection_list(); }
uint32_t connection_list_size() const;
+1 -1
View File
@@ -58,7 +58,7 @@ WindowDownloadStatusbar::redraw() {
print_download_status(buffer, last, m_download);
m_canvas->print(0, 2, "[%c:%i] %s",
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);
}
+5 -5
View File
@@ -26,14 +26,14 @@ WindowTrackerList::redraw() {
m_canvas->erase();
unsigned int pos = 0;
torrent::TrackerList* tl = m_download->tracker_list();
torrent::TrackerController* tc = m_download->tracker_controller();
auto tl = m_download->tracker_list();
auto tc = m_download->tracker_controller();
m_canvas->print(2, pos, "Trackers: [Key: %08x] [%s %s %s]",
tl->key(),
tc->is_requesting() ? "req" : " ",
tc->is_promiscuous_mode() ? "prom" : " ",
tc->is_failure_mode() ? "fail" : " ");
tc.is_requesting() ? "req" : " ",
tc.is_promiscuous_mode() ? "prom" : " ",
tc.is_failure_mode() ? "fail" : " ");
++pos;
if (tl->size() == 0 || *m_focus >= tl->size())
+8 -8
View File
@@ -6,8 +6,8 @@ CPPUNIT_TEST_SUITE_REGISTRATION(CommandTest);
bool
command_stack_all_empty() {
return std::find_if(rpc::command_base::stack_begin(), rpc::command_base::stack_end(),
std::mem_fun_ref(&torrent::Object::is_not_empty)) == rpc::command_base::stack_end();
return std::all_of(rpc::command_base::stack_begin(), rpc::command_base::stack_end(),
[](auto& obj) { return obj.is_empty(); });
}
void
@@ -31,7 +31,7 @@ CommandTest::test_stack() {
last_stack = rpc::command_base::push_stack(args, &stack);
CPPUNIT_ASSERT(!command_stack_all_empty());
CPPUNIT_ASSERT(rpc::command_base::stack_begin()->as_value() == 1);
rpc::command_base::pop_stack(&stack, last_stack);
CPPUNIT_ASSERT(command_stack_all_empty());
@@ -44,7 +44,7 @@ CommandTest::test_stack() {
CPPUNIT_ASSERT(!command_stack_all_empty());
CPPUNIT_ASSERT(rpc::command_base::current_stack[0].as_value() == 2);
CPPUNIT_ASSERT(rpc::command_base::current_stack[1].as_value() == 3);
rpc::command_base::pop_stack(&stack, last_stack);
CPPUNIT_ASSERT(command_stack_all_empty());
}
@@ -59,7 +59,7 @@ CommandTest::test_stack_double() {
// Test double-stacked.
args.push_back(int64_t(1));
last_stack_first = rpc::command_base::push_stack(args, &stack_first);
CPPUNIT_ASSERT(!command_stack_all_empty());
CPPUNIT_ASSERT(rpc::command_base::current_stack[0].as_value() == 1);
@@ -67,17 +67,17 @@ CommandTest::test_stack_double() {
args.clear();
args.push_back(int64_t(2));
args.push_back(int64_t(3));
last_stack_second = rpc::command_base::push_stack(args, &stack_second);
CPPUNIT_ASSERT(!command_stack_all_empty());
CPPUNIT_ASSERT(rpc::command_base::current_stack[0].as_value() == 2);
CPPUNIT_ASSERT(rpc::command_base::current_stack[1].as_value() == 3);
rpc::command_base::pop_stack(&stack_second, last_stack_second);
CPPUNIT_ASSERT(!command_stack_all_empty());
CPPUNIT_ASSERT(rpc::command_base::current_stack[0].as_value() == 1);
rpc::command_base::pop_stack(&stack_first, last_stack_first);
CPPUNIT_ASSERT(command_stack_all_empty());
}