2007-04-07 05:37:23 +02:00
|
|
|
// Copyright Daniel Wallin, Arvid Norberg 2006. Use, modification and distribution is
|
2007-01-10 17:11:43 +01:00
|
|
|
// subject to the Boost Software License, Version 1.0. (See accompanying
|
|
|
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
|
2009-03-02 06:23:25 +01:00
|
|
|
#include <boost/python.hpp>
|
2007-01-10 17:11:43 +01:00
|
|
|
#include <libtorrent/session.hpp>
|
|
|
|
#include <libtorrent/torrent.hpp>
|
2007-04-07 05:37:23 +02:00
|
|
|
#include <libtorrent/storage.hpp>
|
2008-02-17 21:55:03 +01:00
|
|
|
#include <libtorrent/ip_filter.hpp>
|
2009-06-26 01:05:12 +02:00
|
|
|
#include <libtorrent/disk_io_thread.hpp>
|
2007-01-10 17:11:43 +01:00
|
|
|
#include "gil.hpp"
|
|
|
|
|
|
|
|
using namespace boost::python;
|
|
|
|
using namespace libtorrent;
|
|
|
|
|
|
|
|
namespace
|
|
|
|
{
|
2009-05-31 22:46:40 +02:00
|
|
|
bool listen_on(session& s, int min_, int max_, char const* interface)
|
|
|
|
{
|
|
|
|
allow_threading_guard guard;
|
|
|
|
return s.listen_on(std::make_pair(min_, max_), interface);
|
|
|
|
}
|
2007-01-10 17:11:43 +01:00
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
void outgoing_ports(session& s, int _min, int _max)
|
|
|
|
{
|
|
|
|
allow_threading_guard guard;
|
|
|
|
session_settings settings = s.settings();
|
|
|
|
settings.outgoing_ports = std::make_pair(_min, _max);
|
|
|
|
s.set_settings(settings);
|
|
|
|
return;
|
|
|
|
}
|
2008-03-10 04:19:57 +01:00
|
|
|
#ifndef TORRENT_DISABLE_DHT
|
2009-05-31 22:46:40 +02:00
|
|
|
void add_dht_router(session& s, std::string router_, int port_)
|
|
|
|
{
|
|
|
|
allow_threading_guard guard;
|
|
|
|
return s.add_dht_router(std::make_pair(router_, port_));
|
|
|
|
}
|
2008-03-10 04:19:57 +01:00
|
|
|
#endif
|
2008-02-17 22:12:06 +01:00
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
struct invoke_extension_factory
|
|
|
|
{
|
|
|
|
invoke_extension_factory(object const& callback)
|
|
|
|
: cb(callback)
|
|
|
|
{}
|
2007-01-10 17:11:43 +01:00
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
boost::shared_ptr<torrent_plugin> operator()(torrent* t, void*)
|
|
|
|
{
|
|
|
|
lock_gil lock;
|
|
|
|
return extract<boost::shared_ptr<torrent_plugin> >(cb(ptr(t)))();
|
|
|
|
}
|
2007-01-10 17:11:43 +01:00
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
object cb;
|
|
|
|
};
|
2007-01-10 17:11:43 +01:00
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
void add_extension(session& s, object const& e)
|
|
|
|
{
|
|
|
|
allow_threading_guard guard;
|
|
|
|
s.add_extension(invoke_extension_factory(e));
|
|
|
|
}
|
2008-07-01 18:02:17 +02:00
|
|
|
|
2010-08-22 18:45:12 +02:00
|
|
|
#ifndef BOOST_NO_EXCEPTIONS
|
2008-10-28 03:34:14 +01:00
|
|
|
#ifndef TORRENT_NO_DEPRECATE
|
2009-05-31 22:46:40 +02:00
|
|
|
torrent_handle add_torrent_depr(session& s, torrent_info const& ti
|
2009-10-26 02:29:39 +01:00
|
|
|
, std::string const& save, entry const& resume
|
2009-05-31 22:46:40 +02:00
|
|
|
, storage_mode_t storage_mode, bool paused)
|
|
|
|
{
|
|
|
|
allow_threading_guard guard;
|
|
|
|
return s.add_torrent(ti, save, resume, storage_mode, paused, default_storage_constructor);
|
|
|
|
}
|
2010-08-22 18:45:12 +02:00
|
|
|
#endif
|
2008-10-28 03:34:14 +01:00
|
|
|
#endif
|
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
torrent_handle add_torrent(session& s, dict params)
|
|
|
|
{
|
|
|
|
add_torrent_params p;
|
|
|
|
|
|
|
|
if (params.has_key("ti"))
|
|
|
|
p.ti = new torrent_info(extract<torrent_info const&>(params["ti"]));
|
|
|
|
|
|
|
|
std::string url;
|
|
|
|
if (params.has_key("tracker_url"))
|
|
|
|
{
|
|
|
|
url = extract<std::string>(params["tracker_url"]);
|
|
|
|
p.tracker_url = url.c_str();
|
|
|
|
}
|
|
|
|
if (params.has_key("info_hash"))
|
|
|
|
p.info_hash = extract<sha1_hash>(params["info_hash"]);
|
|
|
|
std::string name;
|
|
|
|
if (params.has_key("name"))
|
|
|
|
{
|
|
|
|
name = extract<std::string>(params["name"]);
|
|
|
|
p.name = name.c_str();
|
|
|
|
}
|
2009-10-26 02:29:39 +01:00
|
|
|
p.save_path = extract<std::string>(params["save_path"]);
|
2009-05-31 22:46:40 +02:00
|
|
|
|
|
|
|
std::vector<char> resume_buf;
|
|
|
|
if (params.has_key("resume_data"))
|
|
|
|
{
|
|
|
|
std::string resume = extract<std::string>(params["resume_data"]);
|
|
|
|
resume_buf.resize(resume.size());
|
|
|
|
std::memcpy(&resume_buf[0], &resume[0], resume.size());
|
|
|
|
p.resume_data = &resume_buf;
|
|
|
|
}
|
|
|
|
if (params.has_key("storage_mode"))
|
|
|
|
p.storage_mode = extract<storage_mode_t>(params["storage_mode"]);
|
|
|
|
if (params.has_key("paused"))
|
|
|
|
p.paused = params["paused"];
|
|
|
|
if (params.has_key("auto_managed"))
|
|
|
|
p.auto_managed = params["auto_managed"];
|
|
|
|
if (params.has_key("duplicate_is_error"))
|
|
|
|
p.duplicate_is_error = params["duplicate_is_error"];
|
|
|
|
if (params.has_key("seed_mode"))
|
|
|
|
p.seed_mode = params["seed_mode"];
|
2010-09-05 18:49:03 +02:00
|
|
|
if (params.has_key("upload_mode"))
|
|
|
|
p.upload_mode = params["upload_mode"];
|
|
|
|
if (params.has_key("share_mode"))
|
|
|
|
p.upload_mode = params["share_mode"];
|
2009-05-31 22:46:40 +02:00
|
|
|
if (params.has_key("override_resume_data"))
|
|
|
|
p.override_resume_data = params["override_resume_data"];
|
2009-06-26 01:05:12 +02:00
|
|
|
|
2010-08-22 18:45:12 +02:00
|
|
|
#ifndef BOOST_NO_EXCEPTIONS
|
2009-05-31 22:46:40 +02:00
|
|
|
return s.add_torrent(p);
|
2010-08-22 18:45:12 +02:00
|
|
|
#else
|
|
|
|
error_code ec;
|
|
|
|
return s.add_torrent(p, ec);
|
|
|
|
#endif
|
2009-05-31 22:46:40 +02:00
|
|
|
}
|
2008-07-01 18:02:17 +02:00
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
void start_natpmp(session& s)
|
2008-05-01 07:37:04 +02:00
|
|
|
{
|
2009-05-31 22:46:40 +02:00
|
|
|
allow_threading_guard guard;
|
|
|
|
s.start_natpmp();
|
2008-05-01 07:37:04 +02:00
|
|
|
}
|
2009-05-31 22:46:40 +02:00
|
|
|
|
|
|
|
void start_upnp(session& s)
|
2008-05-01 07:37:04 +02:00
|
|
|
{
|
2009-05-31 22:46:40 +02:00
|
|
|
allow_threading_guard guard;
|
|
|
|
s.start_upnp();
|
2008-05-01 07:37:04 +02:00
|
|
|
}
|
2008-07-01 18:02:17 +02:00
|
|
|
|
2009-09-25 16:35:28 +02:00
|
|
|
alert const* wait_for_alert(session& s, int ms)
|
|
|
|
{
|
|
|
|
return s.wait_for_alert(milliseconds(ms));
|
|
|
|
}
|
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
list get_torrents(session& s)
|
2008-07-01 18:02:17 +02:00
|
|
|
{
|
2009-05-31 22:46:40 +02:00
|
|
|
list ret;
|
|
|
|
std::vector<torrent_handle> torrents = s.get_torrents();
|
|
|
|
|
|
|
|
for (std::vector<torrent_handle>::iterator i = torrents.begin(); i != torrents.end(); ++i)
|
|
|
|
{
|
|
|
|
ret.append(*i);
|
|
|
|
}
|
|
|
|
return ret;
|
2008-07-01 18:02:17 +02:00
|
|
|
}
|
2008-10-28 07:29:30 +01:00
|
|
|
|
2008-04-20 22:12:33 +02:00
|
|
|
#ifndef TORRENT_DISABLE_GEO_IP
|
2010-08-22 18:45:12 +02:00
|
|
|
void load_asnum_db(session& s, std::string file)
|
2009-05-31 22:46:40 +02:00
|
|
|
{
|
|
|
|
allow_threading_guard guard;
|
2010-08-22 18:45:12 +02:00
|
|
|
s.load_asnum_db(file.c_str());
|
2009-05-31 22:46:40 +02:00
|
|
|
}
|
|
|
|
|
2010-08-22 18:45:12 +02:00
|
|
|
void load_country_db(session& s, std::string file)
|
2009-05-31 22:46:40 +02:00
|
|
|
{
|
|
|
|
allow_threading_guard guard;
|
2010-08-22 18:45:12 +02:00
|
|
|
s.load_country_db(file.c_str());
|
2009-05-31 22:46:40 +02:00
|
|
|
}
|
2008-04-20 22:12:33 +02:00
|
|
|
#endif
|
2009-12-05 08:24:22 +01:00
|
|
|
|
2010-03-06 18:50:19 +01:00
|
|
|
entry save_state(session const& s, boost::uint32_t flags)
|
2009-12-05 08:24:22 +01:00
|
|
|
{
|
|
|
|
entry e;
|
2010-03-06 18:50:19 +01:00
|
|
|
s.save_state(e, flags);
|
2009-12-05 08:24:22 +01:00
|
|
|
return e;
|
|
|
|
}
|
|
|
|
|
2007-01-10 17:11:43 +01:00
|
|
|
} // namespace unnamed
|
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
|
2007-01-10 17:11:43 +01:00
|
|
|
void bind_session()
|
|
|
|
{
|
2010-03-06 18:50:19 +01:00
|
|
|
#ifndef TORRENT_DISABLE_DHT
|
|
|
|
void (session::*start_dht0)() = &session::start_dht;
|
|
|
|
#ifndef TORRENT_NO_DEPRECATE
|
|
|
|
void (session::*start_dht1)(entry const&) = &session::start_dht;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
void (session::*load_state0)(lazy_entry const&) = &session::load_state;
|
|
|
|
#ifndef TORRENT_NO_DEPRECATE
|
|
|
|
void (session::*load_state1)(entry const&) = &session::load_state;
|
|
|
|
#endif
|
|
|
|
|
2009-05-14 19:24:17 +02:00
|
|
|
class_<session_status>("session_status")
|
|
|
|
.def_readonly("has_incoming_connections", &session_status::has_incoming_connections)
|
2009-05-31 22:46:40 +02:00
|
|
|
|
2009-05-14 19:24:17 +02:00
|
|
|
.def_readonly("upload_rate", &session_status::upload_rate)
|
|
|
|
.def_readonly("download_rate", &session_status::download_rate)
|
|
|
|
.def_readonly("total_download", &session_status::total_download)
|
|
|
|
.def_readonly("total_upload", &session_status::total_upload)
|
2009-05-31 22:46:40 +02:00
|
|
|
|
|
|
|
.def_readonly("payload_upload_rate", &session_status::payload_upload_rate)
|
|
|
|
.def_readonly("payload_download_rate", &session_status::payload_download_rate)
|
2009-05-14 19:24:17 +02:00
|
|
|
.def_readonly("total_payload_download", &session_status::total_payload_download)
|
|
|
|
.def_readonly("total_payload_upload", &session_status::total_payload_upload)
|
2009-05-31 22:46:40 +02:00
|
|
|
|
|
|
|
.def_readonly("ip_overhead_upload_rate", &session_status::ip_overhead_upload_rate)
|
|
|
|
.def_readonly("ip_overhead_download_rate", &session_status::ip_overhead_download_rate)
|
|
|
|
.def_readonly("total_ip_overhead_download", &session_status::total_ip_overhead_download)
|
|
|
|
.def_readonly("total_ip_overhead_upload", &session_status::total_ip_overhead_upload)
|
2009-06-26 01:05:12 +02:00
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
.def_readonly("dht_upload_rate", &session_status::dht_upload_rate)
|
|
|
|
.def_readonly("dht_download_rate", &session_status::dht_download_rate)
|
|
|
|
.def_readonly("total_dht_download", &session_status::total_dht_download)
|
|
|
|
.def_readonly("total_dht_upload", &session_status::total_dht_upload)
|
2009-06-26 01:05:12 +02:00
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
.def_readonly("tracker_upload_rate", &session_status::tracker_upload_rate)
|
|
|
|
.def_readonly("tracker_download_rate", &session_status::tracker_download_rate)
|
|
|
|
.def_readonly("total_tracker_download", &session_status::total_tracker_download)
|
|
|
|
.def_readonly("total_tracker_upload", &session_status::total_tracker_upload)
|
2009-06-26 01:05:12 +02:00
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
.def_readonly("total_redundant_bytes", &session_status::total_redundant_bytes)
|
|
|
|
.def_readonly("total_failed_bytes", &session_status::total_failed_bytes)
|
2009-06-26 01:05:12 +02:00
|
|
|
|
2009-05-14 19:24:17 +02:00
|
|
|
.def_readonly("num_peers", &session_status::num_peers)
|
2009-05-31 22:46:40 +02:00
|
|
|
.def_readonly("num_unchoked", &session_status::num_unchoked)
|
|
|
|
.def_readonly("allowed_upload_slots", &session_status::allowed_upload_slots)
|
2009-06-26 01:05:12 +02:00
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
.def_readonly("up_bandwidth_queue", &session_status::up_bandwidth_queue)
|
|
|
|
.def_readonly("down_bandwidth_queue", &session_status::down_bandwidth_queue)
|
2009-06-26 01:05:12 +02:00
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
.def_readonly("up_bandwidth_bytes_queue", &session_status::up_bandwidth_bytes_queue)
|
|
|
|
.def_readonly("down_bandwidth_bytes_queue", &session_status::down_bandwidth_bytes_queue)
|
2009-06-26 01:05:12 +02:00
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
.def_readonly("optimistic_unchoke_counter", &session_status::optimistic_unchoke_counter)
|
|
|
|
.def_readonly("unchoke_counter", &session_status::unchoke_counter)
|
2009-06-26 01:05:12 +02:00
|
|
|
|
2007-01-10 17:11:43 +01:00
|
|
|
#ifndef TORRENT_DISABLE_DHT
|
2009-05-14 19:24:17 +02:00
|
|
|
.def_readonly("dht_nodes", &session_status::dht_nodes)
|
2009-11-11 06:28:28 +01:00
|
|
|
.def_readonly("dht_node_cache", &session_status::dht_node_cache)
|
2009-05-14 19:24:17 +02:00
|
|
|
.def_readonly("dht_torrents", &session_status::dht_torrents)
|
2009-05-31 22:46:40 +02:00
|
|
|
.def_readonly("dht_global_nodes", &session_status::dht_global_nodes)
|
|
|
|
.def_readonly("active_requests", &session_status::active_requests)
|
2007-01-10 17:11:43 +01:00
|
|
|
#endif
|
|
|
|
;
|
|
|
|
|
2009-05-31 22:46:40 +02:00
|
|
|
class_<dht_lookup>("dht_lookup")
|
|
|
|
.def_readonly("type", &dht_lookup::type)
|
|
|
|
.def_readonly("outstanding_requests", &dht_lookup::outstanding_requests)
|
|
|
|
.def_readonly("timeouts", &dht_lookup::timeouts)
|
|
|
|
.def_readonly("response", &dht_lookup::responses)
|
|
|
|
.def_readonly("branch_factor", &dht_lookup::branch_factor)
|
|
|
|
;
|
2009-06-26 01:05:12 +02:00
|
|
|
|
2007-10-15 07:37:35 +02:00
|
|
|
enum_<storage_mode_t>("storage_mode_t")
|
|
|
|
.value("storage_mode_allocate", storage_mode_allocate)
|
|
|
|
.value("storage_mode_sparse", storage_mode_sparse)
|
2008-06-08 04:04:30 +02:00
|
|
|
.value("storage_mode_compact", storage_mode_compact)
|
2007-10-15 07:37:35 +02:00
|
|
|
;
|
|
|
|
|
|
|
|
enum_<session::options_t>("options_t")
|
|
|
|
.value("none", session::none)
|
|
|
|
.value("delete_files", session::delete_files)
|
|
|
|
;
|
2008-05-01 07:37:04 +02:00
|
|
|
|
2008-10-01 04:07:55 +02:00
|
|
|
enum_<session::session_flags_t>("session_flags_t")
|
|
|
|
.value("add_default_plugins", session::add_default_plugins)
|
|
|
|
.value("start_default_features", session::start_default_features)
|
|
|
|
;
|
2008-10-28 07:29:30 +01:00
|
|
|
|
2009-06-26 01:05:12 +02:00
|
|
|
class_<cache_status>("cache_status")
|
|
|
|
.def_readonly("blocks_written", &cache_status::blocks_written)
|
|
|
|
.def_readonly("writes", &cache_status::writes)
|
|
|
|
.def_readonly("blocks_read", &cache_status::blocks_read)
|
|
|
|
.def_readonly("blocks_read_hit", &cache_status::blocks_read_hit)
|
|
|
|
.def_readonly("reads", &cache_status::reads)
|
|
|
|
.def_readonly("cache_size", &cache_status::cache_size)
|
|
|
|
.def_readonly("read_cache_size", &cache_status::read_cache_size)
|
|
|
|
.def_readonly("total_used_buffers", &cache_status::total_used_buffers)
|
|
|
|
;
|
|
|
|
|
2009-05-14 19:24:17 +02:00
|
|
|
class_<session, boost::noncopyable>("session", no_init)
|
2007-01-10 17:11:43 +01:00
|
|
|
.def(
|
2008-10-01 04:07:55 +02:00
|
|
|
init<fingerprint, int>((
|
|
|
|
arg("fingerprint")=fingerprint("LT",0,1,0,0)
|
2009-05-14 19:24:17 +02:00
|
|
|
, arg("flags")=session::start_default_features | session::add_default_plugins))
|
2007-01-10 17:11:43 +01:00
|
|
|
)
|
|
|
|
.def(
|
|
|
|
"listen_on", &listen_on
|
|
|
|
, (arg("min"), "max", arg("interface") = (char const*)0)
|
|
|
|
)
|
2008-07-30 07:31:22 +02:00
|
|
|
.def("outgoing_ports", &outgoing_ports)
|
2009-05-14 19:24:17 +02:00
|
|
|
.def("is_listening", allow_threads(&session::is_listening))
|
|
|
|
.def("listen_port", allow_threads(&session::listen_port))
|
|
|
|
.def("status", allow_threads(&session::status))
|
2008-03-10 04:19:57 +01:00
|
|
|
#ifndef TORRENT_DISABLE_DHT
|
2008-02-17 22:12:06 +01:00
|
|
|
.def(
|
|
|
|
"add_dht_router", &add_dht_router
|
|
|
|
, (arg("router"), "port")
|
|
|
|
)
|
2010-03-06 18:50:19 +01:00
|
|
|
.def("start_dht", allow_threads(start_dht0))
|
|
|
|
#ifndef TORRENT_NO_DEPRECATE
|
|
|
|
.def("start_dht", allow_threads(start_dht1))
|
|
|
|
#endif
|
2009-05-14 19:24:17 +02:00
|
|
|
.def("stop_dht", allow_threads(&session::stop_dht))
|
2010-03-06 18:50:19 +01:00
|
|
|
#ifndef TORRENT_NO_DEPRECATE
|
2009-05-14 19:24:17 +02:00
|
|
|
.def("dht_state", allow_threads(&session::dht_state))
|
2010-03-06 18:50:19 +01:00
|
|
|
#endif
|
2008-03-10 04:19:57 +01:00
|
|
|
.def("set_dht_proxy", allow_threads(&session::set_dht_proxy))
|
2010-09-05 18:49:03 +02:00
|
|
|
.def("dht_proxy", allow_threads(&session::dht_proxy))
|
2007-01-10 17:11:43 +01:00
|
|
|
#endif
|
2009-05-14 19:24:17 +02:00
|
|
|
.def("add_torrent", &add_torrent)
|
2010-08-22 18:45:12 +02:00
|
|
|
#ifndef BOOST_NO_EXCEPTIONS
|
2008-10-28 03:34:14 +01:00
|
|
|
#ifndef TORRENT_NO_DEPRECATE
|
|
|
|
.def(
|
|
|
|
"add_torrent", &add_torrent_depr
|
2008-10-28 07:29:30 +01:00
|
|
|
, (
|
2009-05-14 19:24:17 +02:00
|
|
|
arg("resume_data") = entry(),
|
2010-03-06 18:50:19 +01:00
|
|
|
arg("storage_mode") = storage_mode_sparse,
|
2008-10-28 07:29:30 +01:00
|
|
|
arg("paused") = false
|
|
|
|
)
|
2008-10-28 03:34:14 +01:00
|
|
|
)
|
2010-08-22 18:45:12 +02:00
|
|
|
#endif
|
2008-10-28 03:34:14 +01:00
|
|
|
#endif
|
2008-03-10 08:31:56 +01:00
|
|
|
.def("remove_torrent", allow_threads(&session::remove_torrent), arg("option") = session::none
|
2009-05-14 19:24:17 +02:00
|
|
|
)
|
|
|
|
.def("set_local_download_rate_limit", allow_threads(&session::set_local_download_rate_limit))
|
|
|
|
.def("local_download_rate_limit", allow_threads(&session::local_download_rate_limit))
|
2008-10-28 03:34:14 +01:00
|
|
|
|
2009-05-14 19:24:17 +02:00
|
|
|
.def("set_local_upload_rate_limit", allow_threads(&session::set_local_upload_rate_limit))
|
|
|
|
.def("local_upload_rate_limit", allow_threads(&session::local_upload_rate_limit))
|
2007-07-23 05:07:15 +02:00
|
|
|
|
2009-05-14 19:24:17 +02:00
|
|
|
.def("set_download_rate_limit", allow_threads(&session::set_download_rate_limit))
|
|
|
|
.def("download_rate_limit", allow_threads(&session::download_rate_limit))
|
2007-07-23 05:07:15 +02:00
|
|
|
|
2009-05-14 19:24:17 +02:00
|
|
|
.def("set_upload_rate_limit", allow_threads(&session::set_upload_rate_limit))
|
|
|
|
.def("upload_rate_limit", allow_threads(&session::upload_rate_limit))
|
|
|
|
|
|
|
|
.def("set_max_uploads", allow_threads(&session::set_max_uploads))
|
|
|
|
.def("set_max_connections", allow_threads(&session::set_max_connections))
|
|
|
|
.def("set_max_half_open_connections", allow_threads(&session::set_max_half_open_connections))
|
|
|
|
.def("num_connections", allow_threads(&session::num_connections))
|
|
|
|
.def("set_settings", allow_threads(&session::set_settings))
|
2010-09-05 18:49:03 +02:00
|
|
|
.def("settings", allow_threads(&session::settings))
|
2008-03-10 04:19:57 +01:00
|
|
|
#ifndef TORRENT_DISABLE_ENCRYPTION
|
2009-05-14 19:24:17 +02:00
|
|
|
.def("set_pe_settings", allow_threads(&session::set_pe_settings))
|
2010-09-05 18:49:03 +02:00
|
|
|
.def("get_pe_settings", allow_threads(&session::get_pe_settings))
|
2008-03-10 04:19:57 +01:00
|
|
|
#endif
|
2008-04-05 06:53:22 +02:00
|
|
|
#ifndef TORRENT_DISABLE_GEO_IP
|
2008-05-01 07:37:04 +02:00
|
|
|
.def("load_asnum_db", &load_asnum_db)
|
2008-04-20 22:12:33 +02:00
|
|
|
.def("load_country_db", &load_country_db)
|
2008-04-05 06:53:22 +02:00
|
|
|
#endif
|
2010-03-06 18:50:19 +01:00
|
|
|
.def("load_state", load_state0)
|
|
|
|
.def("save_state", &save_state, (arg("entry"), arg("flags") = 0xffffffff))
|
2008-10-28 07:29:30 +01:00
|
|
|
#ifndef TORRENT_NO_DEPRECATE
|
2010-03-06 18:50:19 +01:00
|
|
|
.def("load_state", load_state1)
|
2009-05-14 19:24:17 +02:00
|
|
|
.def("set_severity_level", allow_threads(&session::set_severity_level))
|
2008-10-28 07:29:30 +01:00
|
|
|
#endif
|
2008-07-06 14:22:56 +02:00
|
|
|
.def("set_alert_mask", allow_threads(&session::set_alert_mask))
|
2009-05-14 19:24:17 +02:00
|
|
|
.def("pop_alert", allow_threads(&session::pop_alert))
|
2009-09-25 16:35:28 +02:00
|
|
|
.def("wait_for_alert", &wait_for_alert, return_internal_reference<>())
|
2007-01-10 17:11:43 +01:00
|
|
|
.def("add_extension", &add_extension)
|
2010-09-05 18:49:03 +02:00
|
|
|
#ifndef TORRENT_NO_DEPRECATE
|
2007-04-30 19:27:21 +02:00
|
|
|
.def("set_peer_proxy", allow_threads(&session::set_peer_proxy))
|
|
|
|
.def("set_tracker_proxy", allow_threads(&session::set_tracker_proxy))
|
|
|
|
.def("set_web_seed_proxy", allow_threads(&session::set_web_seed_proxy))
|
2010-09-05 18:49:03 +02:00
|
|
|
.def("peer_proxy", allow_threads(&session::peer_proxy))
|
|
|
|
.def("tracker_proxy", allow_threads(&session::tracker_proxy))
|
|
|
|
.def("web_seed_proxy", allow_threads(&session::web_seed_proxy))
|
|
|
|
#endif
|
|
|
|
.def("set_proxy", allow_threads(&session::set_proxy))
|
|
|
|
.def("proxy", allow_threads(&session::proxy))
|
2009-05-14 19:24:17 +02:00
|
|
|
.def("start_upnp", &start_upnp)
|
|
|
|
.def("stop_upnp", allow_threads(&session::stop_upnp))
|
|
|
|
.def("start_lsd", allow_threads(&session::start_lsd))
|
|
|
|
.def("stop_lsd", allow_threads(&session::stop_lsd))
|
|
|
|
.def("start_natpmp", &start_natpmp)
|
|
|
|
.def("stop_natpmp", allow_threads(&session::stop_natpmp))
|
|
|
|
.def("set_ip_filter", allow_threads(&session::set_ip_filter))
|
2010-09-05 18:49:03 +02:00
|
|
|
.def("get_ip_filter", allow_threads(&session::get_ip_filter))
|
2008-04-20 22:12:33 +02:00
|
|
|
.def("find_torrent", allow_threads(&session::find_torrent))
|
|
|
|
.def("get_torrents", &get_torrents)
|
2008-07-01 23:11:30 +02:00
|
|
|
.def("pause", allow_threads(&session::pause))
|
|
|
|
.def("resume", allow_threads(&session::resume))
|
|
|
|
.def("is_paused", allow_threads(&session::is_paused))
|
2008-12-15 09:03:47 +01:00
|
|
|
.def("id", allow_threads(&session::id))
|
2009-06-26 01:05:12 +02:00
|
|
|
.def("get_cache_status", allow_threads(&session::get_cache_status))
|
2007-01-10 17:11:43 +01:00
|
|
|
;
|
|
|
|
|
2010-03-06 18:50:19 +01:00
|
|
|
enum_<session::save_state_flags_t>("save_state_flags_t")
|
|
|
|
.value("save_settings", session::save_settings)
|
|
|
|
.value("save_dht_settings", session::save_dht_settings)
|
|
|
|
.value("save_dht_proxy", session::save_dht_proxy)
|
|
|
|
.value("save_dht_state", session::save_dht_state)
|
|
|
|
.value("save_i2p_proxy", session::save_i2p_proxy)
|
|
|
|
.value("save_encryption_settings", session:: save_encryption_settings)
|
|
|
|
.value("save_peer_proxy", session::save_peer_proxy)
|
|
|
|
.value("save_web_proxy", session::save_web_proxy)
|
|
|
|
.value("save_tracker_proxy", session::save_tracker_proxy)
|
|
|
|
.value("save_as_map", session::save_as_map)
|
|
|
|
;
|
|
|
|
|
2007-01-10 17:11:43 +01:00
|
|
|
register_ptr_to_python<std::auto_ptr<alert> >();
|
|
|
|
}
|