mirror of
https://github.com/transmission/transmission
synced 2025-02-02 12:32:54 +00:00
Avoid doing some potentially bogus things when stopping and deleting a torrent.
This commit is contained in:
parent
a5c14049ef
commit
e0790f955a
2 changed files with 9 additions and 4 deletions
|
@ -275,14 +275,17 @@ tr_backend_stop_torrents(TrBackend *back) {
|
|||
gboolean
|
||||
tr_backend_torrents_stopped(TrBackend *back) {
|
||||
GList *ii, *list;
|
||||
tr_stat_t *st;
|
||||
gboolean ret = TRUE;
|
||||
|
||||
TR_IS_BACKEND(back);
|
||||
|
||||
list = g_list_copy(back->torrents);
|
||||
for(ii = list; NULL != ii; ii = ii->next)
|
||||
if(!(TR_STATUS_PAUSE & tr_torrent_stat_polite(ii->data)->status))
|
||||
for(ii = list; NULL != ii; ii = ii->next) {
|
||||
st = tr_torrent_stat_polite(ii->data);
|
||||
if(NULL == st || !(TR_STATUS_PAUSE & st->status))
|
||||
ret = FALSE;
|
||||
}
|
||||
g_list_free(list);
|
||||
|
||||
return ret;
|
||||
|
|
|
@ -450,15 +450,17 @@ tr_torrent_stop_politely(TrTorrent *tor) {
|
|||
tr_stat_t *
|
||||
tr_torrent_stat_polite(TrTorrent *tor) {
|
||||
TrTorrentClass *klass;
|
||||
tr_stat_t *st = tr_torrentStat(tor->handle);
|
||||
tr_stat_t *st;
|
||||
|
||||
if(tor->disposed)
|
||||
return st;
|
||||
return NULL;
|
||||
|
||||
st = tr_torrentStat(tor->handle);
|
||||
if(tor->closing && TR_STATUS_PAUSE & st->status) {
|
||||
tor->closing = FALSE;
|
||||
klass = g_type_class_peek(TR_TORRENT_TYPE);
|
||||
g_signal_emit(tor, klass->paused_signal_id, 0, NULL);
|
||||
return tr_torrent_stat_polite(tor);
|
||||
}
|
||||
|
||||
return st;
|
||||
|
|
Loading…
Reference in a new issue