MCPcopy Create free account
hub / github.com/Parchive/par2cmdline / Load

Method Load

src/verificationpacket.cpp:72–103  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70}
71
72bool VerificationPacket::Load(DiskFile *diskfile, u64 offset, PACKET_HEADER &header)
73{
74 // Is the packet large enough
75 if (header.length <= sizeof(FILEVERIFICATIONPACKET))
76 {
77 return false;
78 }
79
80 // Does the packet have a whole number of verification records
81 if (0 < ((header.length - sizeof(FILEVERIFICATIONPACKET)) % sizeof(FILEVERIFICATIONENTRY)))
82 {
83 return false;
84 }
85
86 // Is the packet too large
87 if (header.length > sizeof(FILEVERIFICATIONPACKET) + 32768 * sizeof(FILEVERIFICATIONENTRY))
88 {
89 return false;
90 }
91
92 // Allocate the packet
93 FILEVERIFICATIONPACKET *packet = (FILEVERIFICATIONPACKET*)AllocatePacket((size_t)header.length);
94 packet->header = header;
95
96 // How many blocks are there
97 blockcount = (u32)((((FILEVERIFICATIONPACKET*)packetdata)->header.length - sizeof(FILEVERIFICATIONPACKET)) / sizeof(FILEVERIFICATIONENTRY));
98
99 // Read the rest of the packet
100 return diskfile->Read(offset + sizeof(PACKET_HEADER),
101 &packet->fileid,
102 (size_t)packet->header.length - sizeof(PACKET_HEADER));
103}

Callers

nothing calls this directly

Calls 1

ReadMethod · 0.80

Tested by

no test coverage detected