All pastes #39385 Raw Edit

Mine

public text v1 · immutable
#39385 ·published 2006-02-01 03:55 UTC
rendered paste body
			// ED2Kv2 packet...
			// Most common scenario: hash + blocks to request + every one 
			// having 2 uint32 tags
			CMemFile data(16 + 1 + MAX_BLOCKS_REQUESTED*((2+4)*2)); 
			
			data.WriteHash(m_reqfile->GetFileHash());
			
			uint8 nBlocks = m_PendingBlocks_list.size();
			if (nBlocks > MAX_BLOCKS_REQUESTED) {
				nBlocks = MAX_BLOCKS_REQUESTED;
			}
			data.WriteUInt8(nBlocks);
			
			std::list<Pending_Block_Struct*>::iterator it = m_PendingBlocks_list.begin();
			while (nBlocks) {
				wxASSERT(it != m_PendingBlocks_list.end());
				wxASSERT( pending->block->StartOffset <= pending->block->EndOffset );
				pending->fZStreamError = 0;
				pending->fRecovered = 0;
				CTagVarInt(/*Noname*/0,pending->StartOffset).WriteTagToFile(data);
				CTagVarInt(/*Noname*/0,pending->EndOffset).WriteTagToFile(data);
				nBlocks--;
			}
			
			packet = new CPacket(&data, OP_ED2KV2HEADER, OP_REQUESTPARTS);