Merge pull request #22 from aldenml/session-dht-api
Added dht_get_peers and dht_announce at session level
This commit is contained in:
commit
3036bce311
|
@ -57,6 +57,7 @@ namespace
|
|||
{
|
||||
std::string ip = extract<std::string>(n[0]);
|
||||
int port = extract<int>(n[1]);
|
||||
allow_threading_guard guard;
|
||||
s.add_dht_node(std::make_pair(ip, port));
|
||||
}
|
||||
|
||||
|
@ -65,7 +66,8 @@ namespace
|
|||
allow_threading_guard guard;
|
||||
return s.add_dht_router(std::make_pair(router_, port_));
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // TORRENT_DISABLE_DHT
|
||||
|
||||
void add_extension(lt::session& s, object const& e)
|
||||
{
|
||||
|
@ -499,6 +501,15 @@ namespace
|
|||
|
||||
void bind_session()
|
||||
{
|
||||
#ifndef TORRENT_DISABLE_DHT
|
||||
void (lt::session::*dht_get_immutable_item)(sha1_hash const&) = <::session::dht_get_item;
|
||||
void (lt::session::*dht_get_mutable_item)(boost::array<char, 32>, std::string) = <::session::dht_get_item;
|
||||
sha1_hash (lt::session::*dht_put_immutable_item)(entry data) = <::session::dht_put_item;
|
||||
void (lt::session::*dht_put_mutable_item)(boost::array<char, 32> key
|
||||
, boost::function<void(entry&, boost::array<char,64>&, boost::uint64_t&, std::string const&)> cb
|
||||
, std::string salt) = <::session::dht_put_item; // TODO: resolve the callback type for python
|
||||
#endif // TORRENT_DISABLE_DHT
|
||||
|
||||
#ifndef TORRENT_NO_DEPRECATE
|
||||
#ifndef TORRENT_DISABLE_DHT
|
||||
void (lt::session::*start_dht0)() = <::session::start_dht;
|
||||
|
@ -659,7 +670,7 @@ void bind_session()
|
|||
.def("is_listening", allow_threads(<::session::is_listening))
|
||||
.def("listen_port", allow_threads(<::session::listen_port))
|
||||
#ifndef TORRENT_DISABLE_DHT
|
||||
.def("add_dht_node", add_dht_node)
|
||||
.def("add_dht_node", &add_dht_node)
|
||||
.def(
|
||||
"add_dht_router", &add_dht_router
|
||||
, (arg("router"), "port")
|
||||
|
@ -667,7 +678,13 @@ void bind_session()
|
|||
.def("is_dht_running", allow_threads(<::session::is_dht_running))
|
||||
.def("set_dht_settings", allow_threads(<::session::set_dht_settings))
|
||||
.def("get_dht_settings", allow_threads(<::session::get_dht_settings))
|
||||
#endif
|
||||
.def("dht_get_immutable_item", allow_threads(dht_get_immutable_item))
|
||||
.def("dht_get_mutable_item", allow_threads(dht_get_mutable_item))
|
||||
.def("dht_put_immutable_item", allow_threads(dht_put_immutable_item))
|
||||
.def("dht_put_mutable_item", allow_threads(dht_put_mutable_item))
|
||||
.def("dht_get_peers", allow_threads(<::session::dht_get_peers))
|
||||
.def("dht_announce", allow_threads(<::session::dht_announce))
|
||||
#endif // TORRENT_DISABLE_DHT
|
||||
.def("add_torrent", &add_torrent)
|
||||
.def("async_add_torrent", &async_add_torrent)
|
||||
#ifndef BOOST_NO_EXCEPTIONS
|
||||
|
|
|
@ -307,7 +307,7 @@ namespace libtorrent
|
|||
void dht_get_mutable_item(boost::array<char, 32> key
|
||||
, std::string salt = std::string());
|
||||
|
||||
void dht_put_item(entry data, sha1_hash target);
|
||||
void dht_put_immutable_item(entry data, sha1_hash target);
|
||||
|
||||
void dht_put_mutable_item(boost::array<char, 32> key
|
||||
, boost::function<void(entry&, boost::array<char,64>&
|
||||
|
|
|
@ -422,9 +422,12 @@ namespace libtorrent
|
|||
// calling the callback in between is convenient.
|
||||
void dht_put_item(boost::array<char, 32> key
|
||||
, boost::function<void(entry&, boost::array<char,64>&
|
||||
, boost::uint64_t&, std::string const&)> cb
|
||||
, boost::uint64_t&, std::string const&)> cb
|
||||
, std::string salt = std::string());
|
||||
|
||||
void dht_get_peers(sha1_hash const& info_hash);
|
||||
void dht_announce(sha1_hash const& info_hash, int port = 0, int flags = 0);
|
||||
|
||||
#ifndef TORRENT_NO_DEPRECATE
|
||||
// deprecated in 0.15
|
||||
// use save_state and load_state instead
|
||||
|
|
|
@ -367,14 +367,14 @@ namespace libtorrent
|
|||
sha1_hash ret = hasher(&buf[0], buf.size()).final();
|
||||
|
||||
#ifndef TORRENT_DISABLE_DHT
|
||||
TORRENT_ASYNC_CALL2(dht_put_item, data, ret);
|
||||
TORRENT_ASYNC_CALL2(dht_put_immutable_item, data, ret);
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
void session_handle::dht_put_item(boost::array<char, 32> key
|
||||
, boost::function<void(entry&, boost::array<char,64>&
|
||||
, boost::uint64_t&, std::string const&)> cb
|
||||
, boost::uint64_t&, std::string const&)> cb
|
||||
, std::string salt)
|
||||
{
|
||||
#ifndef TORRENT_DISABLE_DHT
|
||||
|
@ -382,6 +382,20 @@ namespace libtorrent
|
|||
#endif
|
||||
}
|
||||
|
||||
void session_handle::dht_get_peers(sha1_hash const& info_hash)
|
||||
{
|
||||
#ifndef TORRENT_DISABLE_DHT
|
||||
TORRENT_ASYNC_CALL1(dht_get_peers, info_hash);
|
||||
#endif
|
||||
}
|
||||
|
||||
void session_handle::dht_announce(sha1_hash const& info_hash, int port, int flags)
|
||||
{
|
||||
#ifndef TORRENT_DISABLE_DHT
|
||||
TORRENT_ASYNC_CALL3(dht_announce, info_hash, port, flags);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef TORRENT_NO_DEPRECATE
|
||||
entry session_handle::dht_state() const
|
||||
{
|
||||
|
|
|
@ -5496,7 +5496,7 @@ retry:
|
|||
|
||||
namespace {
|
||||
|
||||
void on_dht_put(alert_manager& alerts, sha1_hash target)
|
||||
void on_dht_put_immutable_item(alert_manager& alerts, sha1_hash target)
|
||||
{
|
||||
if (alerts.should_post<dht_put_alert>())
|
||||
alerts.emplace_alert<dht_put_alert>(target);
|
||||
|
@ -5526,10 +5526,10 @@ retry:
|
|||
|
||||
} // anonymous namespace
|
||||
|
||||
void session_impl::dht_put_item(entry data, sha1_hash target)
|
||||
void session_impl::dht_put_immutable_item(entry data, sha1_hash target)
|
||||
{
|
||||
if (!m_dht) return;
|
||||
m_dht->put_item(data, boost::bind(&on_dht_put, boost::ref(m_alerts)
|
||||
m_dht->put_item(data, boost::bind(&on_dht_put_immutable_item, boost::ref(m_alerts)
|
||||
, target));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue