From dfa9f075a48e46581a5dc7ea2b2ec196a9cf9fbc Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 18 Feb 2009 02:24:12 +0000 Subject: [PATCH] (trunk daemon) #1819: indicate torrent error in transmission-remote -l --- daemon/remote.c | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/daemon/remote.c b/daemon/remote.c index eff0e6ec6..70076e583 100644 --- a/daemon/remote.c +++ b/daemon/remote.c @@ -272,6 +272,7 @@ static const char * details_keys[] = { }; static const char * list_keys[] = { + "errorString", "eta", "id", "leftUntilDone", @@ -749,23 +750,29 @@ getStatusString( tr_benc * t, char * buf, size_t buflen ) case TR_STATUS_DOWNLOAD: case TR_STATUS_SEED: { - int64_t fromUs = 0; - int64_t toUs = 0; - tr_bencDictFindInt( t, "peersGettingFromUs", &fromUs ); - tr_bencDictFindInt( t, "peersSendingToUs", &toUs ); - if( fromUs && toUs ) - tr_strlcpy( buf, "Up & Down", buflen ); - else if( toUs ) - tr_strlcpy( buf, "Downloading", buflen ); - else if( fromUs ) { - int64_t leftUntilDone = 0; - tr_bencDictFindInt( t, "leftUntilDone", &leftUntilDone ); - if( leftUntilDone > 0 ) - tr_strlcpy( buf, "Uploading", buflen ); - else - tr_strlcpy( buf, "Seeding", buflen ); - } else - tr_strlcpy( buf, "Idle", buflen ); + const char * err = NULL; + if( tr_bencDictFindStr( t, "errorString", &err ) ) + tr_strlcpy( buf, err, buflen ); + else { + int64_t fromUs = 0; + int64_t toUs = 0; + tr_bencDictFindInt( t, "peersGettingFromUs", &fromUs ); + tr_bencDictFindInt( t, "peersSendingToUs", &toUs ); + if( !fromUs && !toUs ) + tr_strlcpy( buf, "Idle", buflen ); + else if( fromUs && toUs ) + tr_strlcpy( buf, "Up & Down", buflen ); + else if( toUs ) + tr_strlcpy( buf, "Downloading", buflen ); + else if( fromUs ) { + int64_t leftUntilDone = 0; + tr_bencDictFindInt( t, "leftUntilDone", &leftUntilDone ); + if( leftUntilDone > 0 ) + tr_strlcpy( buf, "Uploading", buflen ); + else + tr_strlcpy( buf, "Seeding", buflen ); + } + } break; } }