Changeset 11638


Ignore:
Timestamp:
Jan 6, 2011, 2:40:10 AM (11 years ago)
Author:
jordan
Message:

(trunk gtk) #3519 "webseeds don't work" -- fix webseed peer counts and download speeds in the GTK+ client's main window

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/torrent-cell-renderer.c

    r11601 r11638  
    4545getProgressString( const tr_torrent * tor,
    4646                   const tr_info    * info,
    47                    const tr_stat    * torStat )
    48 {
    49     const int      isDone = torStat->leftUntilDone == 0;
    50     const uint64_t haveTotal = torStat->haveUnchecked + torStat->haveValid;
    51     const int      isSeed = torStat->haveValid >= info->totalSize;
     47                   const tr_stat    * st )
     48{
     49    const int      isDone = st->leftUntilDone == 0;
     50    const uint64_t haveTotal = st->haveUnchecked + st->haveValid;
     51    const int      isSeed = st->haveValid >= info->totalSize;
    5252    char           buf1[32], buf2[32], buf3[32], buf4[32], buf5[32], buf6[32];
    5353    char *         str;
     
    6363            _( "%1$s of %2$s (%3$s%%)" ),
    6464            tr_strlsize( buf1, haveTotal, sizeof( buf1 ) ),
    65             tr_strlsize( buf2, torStat->sizeWhenDone, sizeof( buf2 ) ),
    66             tr_strlpercent( buf3, torStat->percentDone * 100.0, sizeof( buf3 ) ) );
     65            tr_strlsize( buf2, st->sizeWhenDone, sizeof( buf2 ) ),
     66            tr_strlpercent( buf3, st->percentDone * 100.0, sizeof( buf3 ) ) );
    6767    }
    6868    else if( !isSeed ) /* partial seeds */
     
    8080                tr_strlsize( buf1, haveTotal, sizeof( buf1 ) ),
    8181                tr_strlsize( buf2, info->totalSize, sizeof( buf2 ) ),
    82                 tr_strlpercent( buf3, torStat->percentComplete * 100.0, sizeof( buf3 ) ),
    83                 tr_strlsize( buf4, torStat->uploadedEver, sizeof( buf4 ) ),
    84                 tr_strlratio( buf5, torStat->ratio, sizeof( buf5 ) ),
     82                tr_strlpercent( buf3, st->percentComplete * 100.0, sizeof( buf3 ) ),
     83                tr_strlsize( buf4, st->uploadedEver, sizeof( buf4 ) ),
     84                tr_strlratio( buf5, st->ratio, sizeof( buf5 ) ),
    8585                tr_strlratio( buf6, seedRatio, sizeof( buf6 ) ) );
    8686        }
     
    9696                tr_strlsize( buf1, haveTotal, sizeof( buf1 ) ),
    9797                tr_strlsize( buf2, info->totalSize, sizeof( buf2 ) ),
    98                 tr_strlpercent( buf3, torStat->percentComplete * 100.0, sizeof( buf3 ) ),
    99                 tr_strlsize( buf4, torStat->uploadedEver, sizeof( buf4 ) ),
    100                 tr_strlratio( buf5, torStat->ratio, sizeof( buf5 ) ) );
     98                tr_strlpercent( buf3, st->percentComplete * 100.0, sizeof( buf3 ) ),
     99                tr_strlsize( buf4, st->uploadedEver, sizeof( buf4 ) ),
     100                tr_strlratio( buf5, st->ratio, sizeof( buf5 ) ) );
    101101        }
    102102    }
     
    112112                _( "%1$s, uploaded %2$s (Ratio: %3$s Goal: %4$s)" ),
    113113                tr_strlsize( buf1, info->totalSize, sizeof( buf1 ) ),
    114                 tr_strlsize( buf2, torStat->uploadedEver, sizeof( buf2 ) ),
    115                 tr_strlratio( buf3, torStat->ratio, sizeof( buf3 ) ),
     114                tr_strlsize( buf2, st->uploadedEver, sizeof( buf2 ) ),
     115                tr_strlratio( buf3, st->ratio, sizeof( buf3 ) ),
    116116                tr_strlratio( buf4, seedRatio, sizeof( buf4 ) ) );
    117117        }
     
    124124                _( "%1$s, uploaded %2$s (Ratio: %3$s)" ),
    125125                tr_strlsize( buf1, info->totalSize, sizeof( buf1 ) ),
    126                 tr_strlsize( buf2, torStat->uploadedEver, sizeof( buf2 ) ),
    127                 tr_strlratio( buf3, torStat->ratio, sizeof( buf3 ) ) );
     126                tr_strlsize( buf2, st->uploadedEver, sizeof( buf2 ) ),
     127                tr_strlratio( buf3, st->ratio, sizeof( buf3 ) ) );
    128128        }
    129129    }
    130130
    131131    /* add time when downloading */
    132     if( ( torStat->activity == TR_STATUS_DOWNLOAD )
    133         || ( hasSeedRatio && ( torStat->activity == TR_STATUS_SEED ) ) )
    134     {
    135         const int eta = torStat->eta;
     132    if( ( st->activity == TR_STATUS_DOWNLOAD )
     133        || ( hasSeedRatio && ( st->activity == TR_STATUS_SEED ) ) )
     134    {
     135        const int eta = st->eta;
    136136        GString * gstr = g_string_new( str );
    137137        g_string_append( gstr, " - " );
     
    154154static char*
    155155getShortTransferString( const tr_torrent  * tor,
    156                         const tr_stat     * torStat,
     156                        const tr_stat     * st,
    157157                        double              uploadSpeed_KBps,
    158158                        double              downloadSpeed_KBps,
     
    162162    char downStr[32], upStr[32];
    163163    const int haveMeta = tr_torrentHasMetadata( tor );
    164     const int haveDown = haveMeta && torStat->peersSendingToUs > 0;
    165     const int haveUp = haveMeta && torStat->peersGettingFromUs > 0;
     164    const int haveUp = haveMeta && st->peersGettingFromUs > 0;
     165    const int haveDown = haveMeta && ( ( st->peersSendingToUs > 0 ) || ( st->webseedsSendingToUs > 0 ) );
    166166
    167167    if( haveDown )
     
    194194static char*
    195195getShortStatusString( const tr_torrent  * tor,
    196                       const tr_stat     * torStat,
     196                      const tr_stat     * st,
    197197                      double              uploadSpeed_KBps,
    198198                      double              downloadSpeed_KBps )
     
    200200    GString * gstr = g_string_new( NULL );
    201201
    202     switch( torStat->activity )
     202    switch( st->activity )
    203203    {
    204204        case TR_STATUS_STOPPED:
    205             if( torStat->finished )
     205            if( st->finished )
    206206                g_string_assign( gstr, _( "Finished" ) );
    207207            else
     
    216216            g_string_append_printf( gstr,
    217217                                    _( "Verifying local data (%.1f%% tested)" ),
    218                                     tr_truncd( torStat->recheckProgress * 100.0, 1 ) );
     218                                    tr_truncd( st->recheckProgress * 100.0, 1 ) );
    219219            break;
    220220
     
    223223        {
    224224            char buf[512];
    225             if( torStat->activity != TR_STATUS_DOWNLOAD )
     225            if( st->activity != TR_STATUS_DOWNLOAD )
    226226            {
    227                 tr_strlratio( buf, torStat->ratio, sizeof( buf ) );
     227                tr_strlratio( buf, st->ratio, sizeof( buf ) );
    228228                g_string_append_printf( gstr, _( "Ratio %s" ), buf );
    229229                g_string_append( gstr, ", " );
    230230            }
    231             getShortTransferString( tor, torStat, uploadSpeed_KBps, downloadSpeed_KBps, buf, sizeof( buf ) );
     231            getShortTransferString( tor, st, uploadSpeed_KBps, downloadSpeed_KBps, buf, sizeof( buf ) );
    232232            g_string_append( gstr, buf );
    233233            break;
     
    243243static char*
    244244getStatusString( const tr_torrent  * tor,
    245                  const tr_stat     * torStat,
     245                 const tr_stat     * st,
    246246                 const double        uploadSpeed_KBps,
    247247                 const double        downloadSpeed_KBps )
    248248{
    249     const int isActive = torStat->activity != TR_STATUS_STOPPED;
    250     const int isChecking = torStat->activity == TR_STATUS_CHECK
    251                         || torStat->activity == TR_STATUS_CHECK_WAIT;
     249    const int isActive = st->activity != TR_STATUS_STOPPED;
     250    const int isChecking = st->activity == TR_STATUS_CHECK
     251                        || st->activity == TR_STATUS_CHECK_WAIT;
    252252
    253253    GString * gstr = g_string_new( NULL );
    254254
    255     if( torStat->error )
     255    if( st->error )
    256256    {
    257257        const char * fmt[] = { NULL, N_( "Tracker gave a warning: \"%s\"" ),
    258258                                     N_( "Tracker gave an error: \"%s\"" ),
    259259                                     N_( "Error: %s" ) };
    260         g_string_append_printf( gstr, _( fmt[torStat->error] ), torStat->errorString );
    261     }
    262     else switch( torStat->activity )
     260        g_string_append_printf( gstr, _( fmt[st->error] ), st->errorString );
     261    }
     262    else switch( st->activity )
    263263    {
    264264        case TR_STATUS_STOPPED:
     
    266266        case TR_STATUS_CHECK:
    267267        {
    268             char * pch = getShortStatusString( tor, torStat, uploadSpeed_KBps, downloadSpeed_KBps );
     268            char * pch = getShortStatusString( tor, st, uploadSpeed_KBps, downloadSpeed_KBps );
    269269            g_string_assign( gstr, pch );
    270270            g_free( pch );
     
    279279                    gtr_ngettext( "Downloading from %1$'d of %2$'d connected peer",
    280280                                  "Downloading from %1$'d of %2$'d connected peers",
    281                                   torStat->peersConnected ),
    282                     torStat->peersSendingToUs +
    283                     torStat->webseedsSendingToUs,
    284                     torStat->peersConnected +
    285                     torStat->webseedsSendingToUs );
     281                                  st->webseedsSendingToUs + st->peersSendingToUs ),
     282                    st->webseedsSendingToUs + st->peersSendingToUs,
     283                    st->webseedsSendingToUs + st->peersConnected );
    286284            }
    287285            else
     
    290288                    gtr_ngettext( "Downloading metadata from %1$'d peer (%2$d%% done)",
    291289                                  "Downloading metadata from %1$'d peers (%2$d%% done)",
    292                                   torStat->peersConnected ),
    293                     torStat->peersConnected + torStat->webseedsSendingToUs,
    294                     (int)(100.0*torStat->metadataPercentComplete) );
     290                                  st->peersConnected + st->peersConnected ),
     291                    st->peersConnected + st->webseedsSendingToUs,
     292                    (int)(100.0*st->metadataPercentComplete) );
    295293            }
    296294            break;
     
    301299                gtr_ngettext( "Seeding to %1$'d of %2$'d connected peer",
    302300                              "Seeding to %1$'d of %2$'d connected peers",
    303                               torStat->peersConnected ),
    304                 torStat->peersGettingFromUs,
    305                 torStat->peersConnected );
     301                              st->peersConnected ),
     302                st->peersGettingFromUs,
     303                st->peersConnected );
    306304                break;
    307305    }
     
    310308    {
    311309        char buf[256];
    312         getShortTransferString( tor, torStat, uploadSpeed_KBps, downloadSpeed_KBps, buf, sizeof( buf ) );
     310        getShortTransferString( tor, st, uploadSpeed_KBps, downloadSpeed_KBps, buf, sizeof( buf ) );
    313311        if( *buf )
    314312            g_string_append_printf( gstr, " - %s", buf );
Note: See TracChangeset for help on using the changeset viewer.