From 96150f1aeacf55d311c41ffe12d9e754b1cda001 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 26 Feb 2011 21:48:31 +0200 Subject: Add ability to redownload update files if file checksum incorrect. --- src/net/download.cpp | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) (limited to 'src/net/download.cpp') diff --git a/src/net/download.cpp b/src/net/download.cpp index 95dfcd298..40d7c872a 100644 --- a/src/net/download.cpp +++ b/src/net/download.cpp @@ -37,25 +37,6 @@ const char *DOWNLOAD_ERROR_MESSAGE_THREAD = "Could not create download thread!"; -/** - * Calculates the Alder-32 checksum for the given file. - */ -static unsigned long fadler32(FILE *file) -{ - // Obtain file size - fseek(file, 0, SEEK_END); - long fileSize = ftell(file); - rewind(file); - - // Calculate Adler-32 checksum - char *buffer = static_cast(malloc(fileSize)); - const size_t read = fread(buffer, 1, fileSize, file); - unsigned long adler = adler32(0L, Z_NULL, 0); - adler = adler32(static_cast(adler), (Bytef*)buffer, read); - free(buffer); - - return adler; -} enum { @@ -97,6 +78,26 @@ Download::~Download() free(mError); } +/** + * Calculates the Alder-32 checksum for the given file. + */ +unsigned long Download::fadler32(FILE *file) +{ + // Obtain file size + fseek(file, 0, SEEK_END); + long fileSize = ftell(file); + rewind(file); + + // Calculate Adler-32 checksum + char *buffer = static_cast(malloc(fileSize)); + const size_t read = fread(buffer, 1, fileSize, file); + unsigned long adler = adler32(0L, Z_NULL, 0); + adler = adler32(static_cast(adler), (Bytef*)buffer, read); + free(buffer); + + return adler; +} + void Download::addHeader(const std::string &header) { mHeaders = curl_slist_append(mHeaders, header.c_str()); -- cgit v1.2.3-60-g2f50