00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "download_utils.h"
00022 #include "config_downloader.h"
00023 #include <zlib.h>
00024
00025 ulong
00026 check_crc(Filename name) {
00027 ifstream read_stream;
00028 name.set_binary();
00029 if (!name.open_read(read_stream)) {
00030 downloader_cat.error()
00031 << "check_crc() - Failed to open input file: " << name << endl;
00032 return 0;
00033 }
00034
00035
00036 read_stream.seekg(0, ios::end);
00037 int buffer_length = read_stream.tellg();
00038 char *buffer = new char[buffer_length];
00039 read_stream.seekg(0, ios::beg);
00040 read_stream.read(buffer, buffer_length);
00041
00042
00043 ulong crc = crc32(0L, Z_NULL, 0);
00044 crc = crc32(crc, (uchar *)buffer, buffer_length);
00045
00046 delete buffer;
00047
00048 return crc;
00049 }
00050
00051 ulong
00052 check_adler(Filename name) {
00053 ifstream read_stream;
00054 name.set_binary();
00055 if (!name.open_read(read_stream)) {
00056 downloader_cat.error()
00057 << "check_adler() - Failed to open input file: " << name << endl;
00058 return 0;
00059 }
00060
00061
00062 read_stream.seekg(0, ios::end);
00063 int buffer_length = read_stream.tellg();
00064 char *buffer = new char[buffer_length];
00065 read_stream.seekg(0, ios::beg);
00066 read_stream.read(buffer, buffer_length);
00067
00068
00069 ulong adler = adler32(0L, Z_NULL, 0);
00070 adler = adler32(adler, (uchar *)buffer, buffer_length);
00071
00072 delete buffer;
00073
00074 return adler;
00075 }