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
+2 -3
View File
@@ -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
View File
@@ -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;
+1 -1
View File
@@ -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);
} }
+5 -5
View File
@@ -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())
+2 -2
View File
@@ -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