mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-01-15 09:27:09 -05:00
patched fttransfermodule to always fulfill the data suze request, even if the file creator returns small (old pending) chunks, or stops at a chunk boundary. This should improve data flow and hep achievign hight speeds on fast internet connexions
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5505 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
67ea23ae0e
commit
1a8c9d9416
@ -999,9 +999,12 @@ bool ftTransferModule::locked_tickPeerTransfer(peerInfo &info)
|
|||||||
uint64_t req_offset = 0;
|
uint64_t req_offset = 0;
|
||||||
uint32_t req_size =0 ;
|
uint32_t req_size =0 ;
|
||||||
|
|
||||||
if (locked_getChunk(info.peerId,next_req,req_offset,req_size))
|
// Loop over multiple calls to the file creator: for some reasons the file creator might not be able to
|
||||||
{
|
// give a plain chunk of the requested size (size hint larger than the fixed chunk size, priority given to
|
||||||
if (req_size > 0)
|
// an old pending chunk, etc).
|
||||||
|
//
|
||||||
|
while(next_req > 0 && locked_getChunk(info.peerId,next_req,req_offset,req_size))
|
||||||
|
if(req_size > 0)
|
||||||
{
|
{
|
||||||
info.state = PQIPEER_DOWNLOADING;
|
info.state = PQIPEER_DOWNLOADING;
|
||||||
locked_requestData(info.peerId,req_offset,req_size);
|
locked_requestData(info.peerId,req_offset,req_size);
|
||||||
@ -1013,13 +1016,14 @@ bool ftTransferModule::locked_tickPeerTransfer(peerInfo &info)
|
|||||||
info.rttActive = true;
|
info.rttActive = true;
|
||||||
info.rttOffset = req_offset + req_size;
|
info.rttOffset = req_offset + req_size;
|
||||||
}
|
}
|
||||||
|
next_req -= std::min(req_size,next_req) ;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::cerr << "transfermodule::Waiting for available data";
|
std::cerr << "transfermodule::Waiting for available data";
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
|
break ;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user