partially revert commit 1f82f9b7b5
				
					
				
			do it backwards compatible. Also, code was wrong because FixedIndexWriter still computed old style csums...
This commit is contained in:
		@ -189,6 +189,19 @@ impl IndexFile for DynamicIndexReader {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn compute_csum(&self) -> ([u8; 32], u64) {
 | 
			
		||||
        let mut csum = openssl::sha::Sha256::new();
 | 
			
		||||
        let mut chunk_end = 0;
 | 
			
		||||
        for pos in 0..self.index_count() {
 | 
			
		||||
            let info = self.chunk_info(pos).unwrap();
 | 
			
		||||
            chunk_end = info.range.end;
 | 
			
		||||
            csum.update(&chunk_end.to_le_bytes());
 | 
			
		||||
            csum.update(&info.digest);
 | 
			
		||||
        }
 | 
			
		||||
        let csum = csum.finish();
 | 
			
		||||
        (csum, chunk_end)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[allow(clippy::cast_ptr_alignment)]
 | 
			
		||||
    fn chunk_info(&self, pos: usize) -> Option<ChunkReadInfo> {
 | 
			
		||||
        if pos >= self.index.len() {
 | 
			
		||||
 | 
			
		||||
@ -206,6 +206,19 @@ impl IndexFile for FixedIndexReader {
 | 
			
		||||
            digest: *digest,
 | 
			
		||||
        })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn compute_csum(&self) -> ([u8; 32], u64) {
 | 
			
		||||
        let mut csum = openssl::sha::Sha256::new();
 | 
			
		||||
        let mut chunk_end = 0;
 | 
			
		||||
        for pos in 0..self.index_count() {
 | 
			
		||||
            let info = self.chunk_info(pos).unwrap();
 | 
			
		||||
            chunk_end = info.range.end;
 | 
			
		||||
            csum.update(&info.digest);
 | 
			
		||||
        }
 | 
			
		||||
        let csum = csum.finish();
 | 
			
		||||
 | 
			
		||||
        (csum, chunk_end)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub struct FixedIndexWriter {
 | 
			
		||||
 | 
			
		||||
@ -23,19 +23,7 @@ pub trait IndexFile {
 | 
			
		||||
    fn chunk_info(&self, pos: usize) -> Option<ChunkReadInfo>;
 | 
			
		||||
 | 
			
		||||
    /// Compute index checksum and size
 | 
			
		||||
    fn compute_csum(&self) -> ([u8; 32], u64) {
 | 
			
		||||
        let mut csum = openssl::sha::Sha256::new();
 | 
			
		||||
        let mut chunk_end = 0;
 | 
			
		||||
        for pos in 0..self.index_count() {
 | 
			
		||||
            let info = self.chunk_info(pos).unwrap();
 | 
			
		||||
            chunk_end = info.range.end;
 | 
			
		||||
            csum.update(&chunk_end.to_le_bytes());
 | 
			
		||||
            csum.update(&info.digest);
 | 
			
		||||
        }
 | 
			
		||||
        let csum = csum.finish();
 | 
			
		||||
 | 
			
		||||
        (csum, chunk_end)
 | 
			
		||||
    }
 | 
			
		||||
    fn compute_csum(&self) -> ([u8; 32], u64);
 | 
			
		||||
 | 
			
		||||
    /// Returns most often used chunks
 | 
			
		||||
    fn find_most_used_chunks(&self, max: usize) -> HashMap<[u8; 32], usize> {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user