restore find_plugin API (#2026)
This commit is contained in:
parent
392f284566
commit
40cfceb994
|
@ -370,6 +370,10 @@ namespace libtorrent {
|
|||
// hidden
|
||||
virtual ~peer_plugin() {}
|
||||
|
||||
// This function is expected to return the name of
|
||||
// the plugin.
|
||||
virtual string_view type() const { return {}; }
|
||||
|
||||
// can add entries to the extension handshake
|
||||
// this is not called for web seeds
|
||||
virtual void add_handshake(entry&) {}
|
||||
|
|
|
@ -303,6 +303,7 @@ namespace aux {
|
|||
|
||||
#ifndef TORRENT_DISABLE_EXTENSIONS
|
||||
void add_extension(std::shared_ptr<peer_plugin>);
|
||||
peer_plugin const* find_plugin(string_view type);
|
||||
#endif
|
||||
|
||||
// this function is called once the torrent associated
|
||||
|
|
|
@ -57,6 +57,7 @@ struct TORRENT_EXPORT peer_connection_handle
|
|||
connection_type type() const;
|
||||
|
||||
void add_extension(std::shared_ptr<peer_plugin>);
|
||||
peer_plugin const* find_plugin(string_view type);
|
||||
|
||||
bool is_seed() const;
|
||||
|
||||
|
|
|
@ -518,6 +518,14 @@ namespace libtorrent {
|
|||
TORRENT_ASSERT(is_single_thread());
|
||||
m_extensions.push_back(ext);
|
||||
}
|
||||
|
||||
peer_plugin const* peer_connection::find_plugin(string_view type)
|
||||
{
|
||||
TORRENT_ASSERT(is_single_thread());
|
||||
auto p = std::find_if(m_extensions.begin(), m_extensions.end()
|
||||
, [&](std::shared_ptr<peer_plugin> const& e) { return e->type() == type; });
|
||||
return p != m_extensions.end() ? p->get() : nullptr;
|
||||
}
|
||||
#endif
|
||||
|
||||
void peer_connection::send_allowed_set()
|
||||
|
|
|
@ -57,6 +57,18 @@ void peer_connection_handle::add_extension(std::shared_ptr<peer_plugin> ext)
|
|||
#endif
|
||||
}
|
||||
|
||||
peer_plugin const* peer_connection_handle::find_plugin(string_view type)
|
||||
{
|
||||
#ifndef TORRENT_DISABLE_EXTENSIONS
|
||||
std::shared_ptr<peer_connection> pc = native_handle();
|
||||
TORRENT_ASSERT(pc);
|
||||
return pc->find_plugin(type);
|
||||
#else
|
||||
TORRENT_UNUSED(type);
|
||||
return nullptr;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool peer_connection_handle::is_seed() const
|
||||
{
|
||||
std::shared_ptr<peer_connection> pc = native_handle();
|
||||
|
|
Loading…
Reference in New Issue