From 6d1805c85db4fe9aa2579b7c0f7a9b452868fcc9 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Tue, 5 Jun 2007 08:53:04 +0000 Subject: [PATCH] Fixed bug in reporting num_seeds+num_peers > num_connections --- src/deluge_core.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/deluge_core.cpp b/src/deluge_core.cpp index ad01f5758..40b76cdde 100644 --- a/src/deluge_core.cpp +++ b/src/deluge_core.cpp @@ -611,12 +611,20 @@ static PyObject *torrent_get_torrent_state(PyObject *self, PyObject *args) std::vector peers; t.handle.get_peer_info(peers); + long connected_seeds = 0; + for (unsigned long i = 0; i < peers.size(); i++) + if ( peers[i].seed && !(peers[i].flags& + (peer_info::handshake|peer_info::connecting|peer_info::queued)) ) + connected_seeds++; + + long connected_peers = s.num_peers - connected_seeds; + return Py_BuildValue("{s:s,s:l,s:l,s:l,s:l,s:f,s:f,s:d,s:f,s:l,s:l,s:s,s:s,s:f,s:d,s:l,s:l,s:l,s:d,s:l,s:l,s:l,s:l,s:l,s:l,s:d,s:d}", "name", t.handle.get_torrent_info().name().c_str(), "num_files", t.handle.get_torrent_info().num_files(), "state", s.state, - "num_peers", s.num_peers, - "num_seeds", s.num_seeds, + "num_peers", connected_peers, + "num_seeds", connected_seeds, "distributed_copies", s.distributed_copies, "download_rate", s.download_rate, "total_download", double(s.total_download), @@ -633,8 +641,8 @@ static PyObject *torrent_get_torrent_state(PyObject *self, PyObject *args) "total_size", double(i.total_size()), "piece_length", long(i.piece_length()), "num_pieces", long(i.num_pieces()), - "total_peers", long(s.num_incomplete != -1? s.num_incomplete : s.num_peers), - "total_seeds", long(s.num_complete != -1? s.num_complete : s.num_seeds), + "total_peers", long(s.num_incomplete != -1? s.num_incomplete : connected_peers), + "total_seeds", long(s.num_complete != -1? s.num_complete : connected_seeds), "is_paused", long(t.handle.is_paused()), "is_seed", long(t.handle.is_seed()), "total_wanted", double(s.total_wanted),