[PATCH setup v3] Query the user if a corrupt local file is found

Jon Turney jon.turney@dronecode.org.uk
Sat Jan 13 17:20:00 GMT 2018

On 10/01/2018 02:59, Ken Brown wrote:
> Also reorganize package validation.
> Move the size-validation code in download.cc and the hash-validation
> code in install.cc into new member functions of the packagesource
> class.  Add a bool member 'validated' to the class to make sure that
> the checking is done only once.
> Change download.cc:check_for_cached() so that it offers to delete a
> corrupt package file instead of throwing an exception.  The latter
> previously caused a fatal error when check_for_cached() was called
> from do_download_thread and download_one.  Now we get a fatal error
> only if the user chooses not to delete the file.
> Also make check_for_cached() check the hash of the file in addition to
> the size.  Similarly, check the hash in addition to the size after
> downloading a file.

This looks great, thanks.

One minor comment, but please apply.

> diff --git a/res.rc b/res.rc
> index 82a9757..9648871 100644
> --- a/res.rc
> +++ b/res.rc
> @@ -550,7 +550,8 @@ BEGIN
>       IDS_DOWNLOAD_INCOMPLETE_EXIT  "Download incomplete.  Check %s for details"
>       IDS_INSTALL_ERROR	    "Installation error (%s), Continue with other packages?"
>       IDS_INSTALL_INCOMPLETE  "Installation incomplete.  Check %s for details"
> -    IDS_CORRUPT_PACKAGE     "Package file %s has a corrupt local copy, please remove and retry."
> +    IDS_CORRUPT_PACKAGE     "Package %s has a corrupt local copy, please remove and retry."
> +    IDS_QUERY_CORRUPT       "The file %s is corrupt.  Delete it?."

Perhaps this should say something like "Delete it and download again?"

>       IDS_SKIP_PACKAGE	    "%s\nDo you want to skip this package ?"
>       IDS_UNCAUGHT_EXCEPTION  "Fatal Error: Uncaught Exception\nThread: %s\nType: %s\nMessage: %s"
>       IDS_UNCAUGHT_EXCEPTION_WITH_ERRNO  "Fatal Error: Uncaught Exception\nThread: %s\nType: %s\nMessage: %s\nAppErrNo: %d"

More information about the Cygwin-apps mailing list