static uint64_t loadSpeedLimits(tr_variant* dict, tr_torrent* tor) { tr_variant* d; uint64_t ret = 0; if (tr_variantDictFindDict(dict, TR_KEY_speed_limit_up, &d)) { loadSingleSpeedLimit(d, TR_UP, tor); ret = TR_FR_SPEEDLIMIT; } if (tr_variantDictFindDict(dict, TR_KEY_speed_limit_down, &d)) { loadSingleSpeedLimit(d, TR_DOWN, tor); ret = TR_FR_SPEEDLIMIT; } return ret; }
static uint64_t loadSpeedLimits( tr_benc * dict, tr_torrent * tor ) { tr_benc * d; uint64_t ret = 0; if( tr_bencDictFindDict( dict, KEY_SPEEDLIMIT_UP, &d ) ) { loadSingleSpeedLimit( d, TR_UP, tor ); ret = TR_FR_SPEEDLIMIT; } if( tr_bencDictFindDict( dict, KEY_SPEEDLIMIT_DOWN, &d ) ) { loadSingleSpeedLimit( d, TR_DOWN, tor ); ret = TR_FR_SPEEDLIMIT; } /* older speedlimit structure */ if( !ret && tr_bencDictFindDict( dict, KEY_SPEEDLIMIT_OLD, &d ) ) { int64_t i; if( tr_bencDictFindInt( d, KEY_SPEEDLIMIT_DOWN_SPEED, &i ) ) tr_torrentSetSpeedLimit_Bps( tor, TR_DOWN, i*1024 ); if( tr_bencDictFindInt( d, KEY_SPEEDLIMIT_DOWN_MODE, &i ) ) { tr_torrentUseSpeedLimit( tor, TR_DOWN, i==TR_SPEEDLIMIT_SINGLE ); tr_torrentUseSessionLimits( tor, i==TR_SPEEDLIMIT_GLOBAL ); } if( tr_bencDictFindInt( d, KEY_SPEEDLIMIT_UP_SPEED, &i ) ) tr_torrentSetSpeedLimit_Bps( tor, TR_UP, i*1024 ); if( tr_bencDictFindInt( d, KEY_SPEEDLIMIT_UP_MODE, &i ) ) { tr_torrentUseSpeedLimit( tor, TR_UP, i==TR_SPEEDLIMIT_SINGLE ); tr_torrentUseSessionLimits( tor, i==TR_SPEEDLIMIT_GLOBAL ); } ret = TR_FR_SPEEDLIMIT; } return ret; }