rendered paste bodyvoid CUpDownClient::ProcessRequestPartsPacketv2(const CMemFile& data) {
CMD4Hash reqfilehash = data.ReadHash();
uint8 numblocks = data.ReadUInt8();
for (int i = 0; i < numblocks; i++) {
Requested_Block_Struct* reqblock = new Requested_Block_Struct;
try {
reqblock->StartOffset = data.GetIntTagValue();
reqblock->EndOffset = data.GetIntTagValue();
if (reqblock->StartOffset >= reqblock->EndOffset) {
if ( CLogger::IsEnabled( logClient ) ) {
AddLogLineM(false, _("Client request is invalid!"));
}
throw wxString(wxT("Client request is invalid!"));
}
if ( CLogger::IsEnabled( logClient ) ) {
wxString msg = wxString::Format(_("Client requests %u"), i);
msg += wxT(" ") + wxString::Format(_("File block %u-%u (%d bytes):"),reqblock->StartOffset, reqblock->EndOffset, reqblock->EndOffset - reqblock->StartOffset);
msg += wxT(" ") + GetFullIP();
AddLogLineM(false, msg);
}
md4cpy(reqblock->FileID, reqfilehash.GetHash());
reqblock->transferred = 0;
AddReqBlock(reqblock);
} catch (...) {
delete reqblock;
throw;
}
}
}