diff options
author | Marcos Pinto <markybob@dipconsultants.com> | 2007-11-25 23:59:19 +0000 |
---|---|---|
committer | Marcos Pinto <markybob@dipconsultants.com> | 2007-11-25 23:59:19 +0000 |
commit | fd7d1ce67533baa27ac2ba797fa2b2ca2b04bdff (patch) | |
tree | ab2de34ab9abcaf83d40d87fdd472419b89723bd | |
parent | e0367895b7147f81d2f081c1d2f98997ed734754 (diff) | |
download | deluge-fd7d1ce67533baa27ac2ba797fa2b2ca2b04bdff.tar.gz deluge-fd7d1ce67533baa27ac2ba797fa2b2ca2b04bdff.tar.bz2 deluge-fd7d1ce67533baa27ac2ba797fa2b2ca2b04bdff.zip |
try to catch invalid handle in deluge_core
-rw-r--r-- | src/deluge_core.cpp | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/deluge_core.cpp b/src/deluge_core.cpp index 829696e25..699c43dfb 100644 --- a/src/deluge_core.cpp +++ b/src/deluge_core.cpp @@ -1787,23 +1787,26 @@ static PyObject *torrent_replace_trackers(PyObject *self, PyObject *args) if (PyErr_Occurred()) return NULL; - if (M_torrents->at(index).handle.is_valid()){ - std::vector<libtorrent::announce_entry> trackerlist; - std::istringstream trackers(tracker); - std::string line; - while (std::getline(trackers, line)) { - libtorrent::announce_entry a_entry(line); - trackerlist.push_back(a_entry); - } - if (trackerlist.empty()){ - std::vector<libtorrent::announce_entry> empty; - M_torrents->at(index).handle.replace_trackers(empty); - } - else{ - M_torrents->at(index).handle.replace_trackers(trackerlist); - M_torrents->at(index).handle.force_reannounce(); + try { + if (M_torrents->at(index).handle.is_valid()){ + std::vector<libtorrent::announce_entry> trackerlist; + std::istringstream trackers(tracker); + std::string line; + while (std::getline(trackers, line)) { + libtorrent::announce_entry a_entry(line); + trackerlist.push_back(a_entry); + } + if (trackerlist.empty()){ + std::vector<libtorrent::announce_entry> empty; + M_torrents->at(index).handle.replace_trackers(empty); + } + else{ + M_torrents->at(index).handle.replace_trackers(trackerlist); + M_torrents->at(index).handle.force_reannounce(); + } } - } + } + catch (libtorrent::invalid_handle&) {} Py_INCREF(Py_None); return Py_None; } static PyObject *torrent_prioritize_files(PyObject *self, PyObject *args) |