From 80710abcbfcf258f47ee42c5f80b7e63b515a49d Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Wed, 27 Apr 2016 12:28:22 -0400 Subject: [PATCH] fix python dictionary to settings_pack conversion bug (#652) --- ChangeLog | 1 + bindings/python/src/session.cpp | 9 +++++---- bindings/python/test.py | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 106405c10..77b9a2f49 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,6 @@ 1.1.1 release + * fix set_settings in python binding * Added missing alert categories in python binding * Added dht_get_peers_reply_alert alert in python binding diff --git a/bindings/python/src/session.cpp b/bindings/python/src/session.cpp index 972a97cb1..3fe26743d 100644 --- a/bindings/python/src/session.cpp +++ b/bindings/python/src/session.cpp @@ -101,16 +101,17 @@ namespace void make_settings_pack(lt::settings_pack& p, dict const& sett_dict) { list iterkeys = (list)sett_dict.keys(); - for (int i = 0; i < boost::python::len(iterkeys); i++) + int const len = boost::python::len(iterkeys); + for (int i = 0; i < len; i++) { - std::string key = extract(iterkeys[i]); + std::string const key = extract(iterkeys[i]); int sett = setting_by_name(key); - if (sett == 0) continue; + if (sett < 0) continue; TORRENT_TRY { - object value = sett_dict[key]; + object const value = sett_dict[key]; switch (sett & settings_pack::type_mask) { case settings_pack::string_type_base: diff --git a/bindings/python/test.py b/bindings/python/test.py index 3a29a06cf..7c97cf54a 100644 --- a/bindings/python/test.py +++ b/bindings/python/test.py @@ -156,8 +156,9 @@ class test_session(unittest.TestCase): def test_apply_settings(self): s = lt.session({}) - s.apply_settings({'num_want': 66}) + s.apply_settings({'num_want': 66, 'user_agent': 'test123'}) self.assertEqual(s.get_settings()['num_want'], 66) + self.assertEqual(s.get_settings()['user_agent'], 'test123') if __name__ == '__main__':