1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-23 00:04:06 +00:00

#727: Download speed setting also affects upload speed, peer informations in torrent inspector

This commit is contained in:
Charles Kerr 2008-02-29 17:09:33 +00:00
parent d13d03bd2a
commit 3de06974e8

View file

@ -1571,22 +1571,25 @@ static ReadState
canRead( struct bufferevent * evin, void * vmsgs )
{
ReadState ret;
tr_peermsgs * msgs = (tr_peermsgs *) vmsgs;
struct evbuffer * inbuf = EVBUFFER_INPUT ( evin );
const size_t buflen = EVBUFFER_LENGTH( inbuf );
const size_t downloadMax = getDownloadMax( msgs );
const size_t n = MIN( buflen, downloadMax );
tr_peermsgs * msgs = vmsgs;
struct evbuffer * in = EVBUFFER_INPUT ( evin );
const size_t inlen = EVBUFFER_LENGTH( in );
if( !n )
if( !inlen )
{
ret = READ_DONE;
}
else if( msgs->state == AWAITING_BT_PIECE )
{
const size_t downloadMax = getDownloadMax( msgs );
const size_t n = MIN( inlen, downloadMax );
ret = n ? readBtPiece( msgs, in, n ) : READ_DONE;
}
else switch( msgs->state )
{
case AWAITING_BT_LENGTH: ret = readBtLength ( msgs, inbuf, n ); break;
case AWAITING_BT_ID: ret = readBtId ( msgs, inbuf, n ); break;
case AWAITING_BT_MESSAGE: ret = readBtMessage( msgs, inbuf, n ); break;
case AWAITING_BT_PIECE: ret = readBtPiece ( msgs, inbuf, n ); break;
case AWAITING_BT_LENGTH: ret = readBtLength ( msgs, in, inlen ); break;
case AWAITING_BT_ID: ret = readBtId ( msgs, in, inlen ); break;
case AWAITING_BT_MESSAGE: ret = readBtMessage( msgs, in, inlen ); break;
default: assert( 0 );
}