Changeset 7003


Ignore:
Timestamp:
Nov 1, 2008, 6:22:14 AM (12 years ago)
Author:
charles
Message:

(daemon) make getStatusStr() pass the smell test a little better

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/daemon/remote.c

    r7002 r7003  
    619619getStatusString( tr_benc * t, char * buf, size_t buflen )
    620620{
    621     int64_t i;
    622 
    623     *buf = '\0';
    624 
    625     if( tr_bencDictFindInt( t, "status", &i ) )
    626     {
    627         if( i==TR_STATUS_STOPPED )
    628         {
     621    int64_t status;
     622
     623    if( !tr_bencDictFindInt( t, "status", &status ) )
     624    {
     625        *buf = '\0';
     626    }
     627    else switch( status )
     628    {
     629        case TR_STATUS_STOPPED:
    629630            tr_strlcpy( buf, "Stopped", buflen );
    630         }
    631         else if( i==TR_STATUS_CHECK_WAIT || i==TR_STATUS_CHECK )
    632         {
    633             const char * str = NULL;
    634             char percentBuf[32];
    635             if( tr_bencDictFindStr( t, "recheckProgress", &str ) )
    636                 tr_snprintf( percentBuf, sizeof( percentBuf ), " (%.0f%%)", atof( str ) );
     631            break;
     632
     633        case TR_STATUS_CHECK_WAIT:
     634        case TR_STATUS_CHECK: {
     635            const char * str = status == TR_STATUS_CHECK_WAIT
     636                             ? "Will Verify"
     637                             : "Verifying";
     638            double percent;
     639            if( tr_bencDictFindDouble( t, "recheckProgress", &percent ) )
     640                tr_snprintf( buf, buflen, "%s (%.0f%%)", str, percent*100.0 );
    637641            else
    638                 *percentBuf = '\0';
    639             tr_snprintf( buf, buflen, "%s%s",
    640                          ( i == TR_STATUS_CHECK_WAIT ) ? "Will Verify" : "Verifying",
    641                          percentBuf );
    642         }
    643         else if( i==TR_STATUS_DOWNLOAD || i==TR_STATUS_SEED )
    644         {
    645             int64_t j = 0;
    646             int64_t k = 0;
    647             tr_bencDictFindInt( t, "peersGettingFromUs", &j );
    648             tr_bencDictFindInt( t, "peersSendingToUs", &k );
    649             if( j && k )
     642                tr_strlcpy( buf, str, buflen );
     643
     644            break;
     645        }
     646
     647        case TR_STATUS_DOWNLOAD:
     648        case TR_STATUS_SEED: {
     649            int64_t fromUs = 0;
     650            int64_t toUs = 0;
     651            tr_bencDictFindInt( t, "peersGettingFromUs", &fromUs );
     652            tr_bencDictFindInt( t, "peersSendingToUs", &toUs );
     653            if( fromUs && toUs )
    650654                tr_strlcpy( buf, "Up & Down", buflen );
    651             else if( j )
    652                 tr_strlcpy( buf, (i==TR_STATUS_SEED ? "Seeding" : "Uploading"), buflen );
    653             else if( j )
     655            else if( fromUs )
     656                tr_strlcpy( buf, "Seeding", buflen );
     657            else if( toUs )
    654658                tr_strlcpy( buf, "Downloading", buflen );
    655659            else
    656660                tr_strlcpy( buf, "Idle", buflen );
     661            break;
    657662        }
    658663    }
Note: See TracChangeset for help on using the changeset viewer.