diff options
author | Andrew Resch <andrewresch@gmail.com> | 2009-01-24 05:25:37 +0000 |
---|---|---|
committer | Andrew Resch <andrewresch@gmail.com> | 2009-01-24 05:25:37 +0000 |
commit | d268ed49559fd9f8de568d698bb4c40b5a6b2d83 (patch) | |
tree | cb84865119f5413331c245d6a47eb286fe6e77fd | |
parent | 7376a1e125e528465d09282fc199f53f90e1519f (diff) | |
download | deluge-d268ed49559fd9f8de568d698bb4c40b5a6b2d83.tar.gz deluge-d268ed49559fd9f8de568d698bb4c40b5a6b2d83.tar.bz2 deluge-d268ed49559fd9f8de568d698bb4c40b5a6b2d83.zip |
Fix setting outgoing ports
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | deluge/core/preferencesmanager.py | 3 | ||||
-rwxr-xr-x | libtorrent/bindings/python/src/converters.cpp | 48 | ||||
-rwxr-xr-x | libtorrent/bindings/python/src/module.cpp | 3 | ||||
-rwxr-xr-x | libtorrent/bindings/python/src/session.cpp | 4 | ||||
-rwxr-xr-x | libtorrent/bindings/python/src/session_settings.cpp | 1 |
6 files changed, 57 insertions, 3 deletions
@@ -2,6 +2,7 @@ Deluge 1.1.1 - (In Development) Core: * Fix oldstateupgrader for those upgrading from 0.5.x * Fix setting Peer TOS byte + * Fix setting outgoing ports GtkUI: * Fix opening links from Help menu and others diff --git a/deluge/core/preferencesmanager.py b/deluge/core/preferencesmanager.py index 242275d07..8c495a2e6 100644 --- a/deluge/core/preferencesmanager.py +++ b/deluge/core/preferencesmanager.py @@ -256,7 +256,8 @@ class PreferencesManager(component.Component): def _on_set_outgoing_ports(self, key, value): if not self.config["random_outgoing_ports"]: log.debug("outgoing port range set to %s-%s", value[0], value[1]) - self.session.outgoing_ports(value[0], value[1]) + self.settings.outgoing_ports = value[0], value[1] + self.session.set_settings(self.settings) def _on_set_random_outgoing_ports(self, key, value): if value: diff --git a/libtorrent/bindings/python/src/converters.cpp b/libtorrent/bindings/python/src/converters.cpp index f684cc4f3..cae84be75 100755 --- a/libtorrent/bindings/python/src/converters.cpp +++ b/libtorrent/bindings/python/src/converters.cpp @@ -1,5 +1,51 @@ -// Copyright Daniel Wallin 2007. Use, modification and distribution is +// Copyright Andrew Resch 2009. Use, modification and distribution is // 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) +#include <boost/python.hpp> +using namespace boost::python; + +template<class T1, class T2> +struct pair_to_tuple +{ + static PyObject* convert(const std::pair<T1, T2>& p) + { + return incref(make_tuple(p.first, p.second).ptr()); + } +}; + +template<class T1, class T2> +struct tuple_to_pair +{ + tuple_to_pair() + { + converter::registry::push_back( + &convertible, &construct, type_id<std::pair<T1, T2> >() + ); + } + + static void* convertible(PyObject* x) + { + return PyTuple_Check(x) ? x: 0; + } + + static void construct(PyObject* x, converter::rvalue_from_python_stage1_data* data) + { + void* storage = ((converter::rvalue_from_python_storage< + std::pair<T1, T2> >*)data)->storage.bytes; + + object o(borrowed(x)); + std::pair<T1, T2> p; + p.first = extract<T1>(o[0]); + p.second = extract<T2>(o[1]); + new (storage) std::pair<T1, T2>(p); + data->convertible = storage; + } +}; + +void bind_converters() +{ + to_python_converter<std::pair<int, int>, pair_to_tuple<int, int> >(); + tuple_to_pair<int, int>(); +} diff --git a/libtorrent/bindings/python/src/module.cpp b/libtorrent/bindings/python/src/module.cpp index 7539449cb..3d0925f47 100755 --- a/libtorrent/bindings/python/src/module.cpp +++ b/libtorrent/bindings/python/src/module.cpp @@ -23,6 +23,7 @@ void bind_torrent(); void bind_peer_info(); void bind_ip_filter(); void bind_magnet_uri(); +void bind_converters(); BOOST_PYTHON_MODULE(libtorrent) { @@ -48,5 +49,5 @@ BOOST_PYTHON_MODULE(libtorrent) bind_peer_info(); bind_ip_filter(); bind_magnet_uri(); + bind_converters(); } - diff --git a/libtorrent/bindings/python/src/session.cpp b/libtorrent/bindings/python/src/session.cpp index 9202079de..5d9e9fddf 100755 --- a/libtorrent/bindings/python/src/session.cpp +++ b/libtorrent/bindings/python/src/session.cpp @@ -300,6 +300,7 @@ void bind_session() .def("stop_dht", allow_threads(&session::stop_dht), session_stop_dht_doc) .def("dht_state", allow_threads(&session::dht_state), session_dht_state_doc) .def("set_dht_proxy", allow_threads(&session::set_dht_proxy)) + .def("dht_proxy", allow_threads(&session::dht_proxy), return_value_policy<copy_const_reference>()) #endif .def("add_torrent", &add_torrent, session_add_torrent_doc) #ifndef TORRENT_NO_DEPRECATE @@ -373,6 +374,9 @@ void bind_session() .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)) + .def("peer_proxy", allow_threads(&session::peer_proxy), return_value_policy<copy_const_reference>()) + .def("tracker_proxy", allow_threads(&session::tracker_proxy), return_value_policy<copy_const_reference>()) + .def("web_seed_proxy", allow_threads(&session::web_seed_proxy), return_value_policy<copy_const_reference>()) .def("start_upnp", &start_upnp, session_start_upnp_doc) .def("stop_upnp", allow_threads(&session::stop_upnp), session_stop_upnp_doc) .def("start_lsd", allow_threads(&session::start_lsd), session_start_lsd_doc) diff --git a/libtorrent/bindings/python/src/session_settings.cpp b/libtorrent/bindings/python/src/session_settings.cpp index 76e078560..8d4974936 100755 --- a/libtorrent/bindings/python/src/session_settings.cpp +++ b/libtorrent/bindings/python/src/session_settings.cpp @@ -45,6 +45,7 @@ void bind_session_settings() .def_readwrite("auto_scraped_interval", &session_settings::auto_scrape_interval) .def_readwrite("peer_tos", &session_settings::peer_tos) .def_readwrite("rate_limit_ip_overhead", &session_settings::rate_limit_ip_overhead) + .def_readwrite("outgoing_ports", &session_settings::outgoing_ports) #ifndef TORRENT_DISABLE_DHT .def_readwrite("use_dht_as_fallback", &session_settings::use_dht_as_fallback) #endif |