- /**
- * Checks whether the final (last) chunk is valid
- *
- * @param $chunks An array with chunks and (hopefully) a valid final chunk
- * @return $isValid Whether the final (last) chunk is valid
- */
- protected function isValidFinalChunk (array $chunks) {
- // Default is all fine
- $isValid = true;
-
- // Split the (possible) EOP chunk
- $chunkSplits = explode(PackageFragmenter::CHUNK_DATA_HASH_SEPARATOR, $chunks[count($chunks) - 1]);
-
- // Make sure chunks with only 3 elements are parsed (for details see ChunkHandler)
- //* NOISY-DEBUG: */ $this->debugOutput('eopChunk=' . $chunks[count($chunks) - 1] . ',chunkSplits=' . print_r($chunkSplits,true));
- assert(count($chunkSplits) == 3);
-
- // Validate final chunk
- if (substr($chunkSplits[ChunkHandler::CHUNK_SPLITS_INDEX_RAW_DATA], 0, strlen(PackageFragmenter::END_OF_PACKAGE_IDENTIFIER)) != PackageFragmenter::END_OF_PACKAGE_IDENTIFIER) {
- // Not fine
- $isValid = false;
- } elseif (substr_count($chunkSplits[ChunkHandler::CHUNK_SPLITS_INDEX_RAW_DATA], PackageFragmenter::CHUNK_HASH_SEPARATOR) != 1) {
- // CHUNK_HASH_SEPARATOR shall only be found once
- $isValid = false;
- }
-
- // Return status
- return $isValid;
- }
-