summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcos Pinto <markybob@dipconsultants.com>2007-11-25 23:59:19 +0000
committerMarcos Pinto <markybob@dipconsultants.com>2007-11-25 23:59:19 +0000
commitfd7d1ce67533baa27ac2ba797fa2b2ca2b04bdff (patch)
treeab2de34ab9abcaf83d40d87fdd472419b89723bd
parente0367895b7147f81d2f081c1d2f98997ed734754 (diff)
downloaddeluge-fd7d1ce67533baa27ac2ba797fa2b2ca2b04bdff.tar.gz
deluge-fd7d1ce67533baa27ac2ba797fa2b2ca2b04bdff.tar.bz2
deluge-fd7d1ce67533baa27ac2ba797fa2b2ca2b04bdff.zip
try to catch invalid handle in deluge_core
-rw-r--r--src/deluge_core.cpp35
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)