wfut
0.2.4
A client side C++ implementation of WFUT (WorldForge Update Tool).
crc32.cpp
1
// This file may be redistributed and modified only under the terms of
2
// the GNU Lesser General Public License (See COPYING for details).
3
// Copyright (C) 2005 - 2007 Simon Goodall
4
5
#include <zlib.h>
6
#include <string>
7
#include <cstdio>
8
9
#include "crc32.h"
10
namespace
WFUT {
11
12
int
calcCRC32(
const
std::string &filename, uLong &crc) {
13
// Open file for writing
14
FILE *fp = fopen(filename.c_str(),
"rb"
);
15
if
(!fp) {
16
// Error!
17
return
-1;
18
}
19
// Initialise CRC32 value
20
crc = crc32(0L, Z_NULL, 0);
21
Bytef buf[8192];
22
size_t
len;
23
// Read all bytes in file and calculate the crc32 value
24
while
((len = fread(&buf[0],
sizeof
(Bytef), 8192, fp)) != 0) {
25
crc = crc32(crc, buf, len);
26
}
27
// Close file handle
28
fclose(fp);
29
// Return calculated CRC32
30
return
0;
31
}
32
33
}
src
libwfut
crc32.cpp
Generated by
1.8.18