On 17/12/19 1:21 am, Eli Schwartz wrote: > On 12/16/19 10:05 AM, Allan McRae wrote: >> If alpm_db_update() fails due to an invalid signature, then the system >> is left with an unusable repo database. Instead, backup the currently >> working database before performing the update, and restore on error. >> >> Note that the calls rename and unlink are not checked for errors. If these >> fail, there is nothing to be done anyway. It also allows for less complex >> flow, as these function fail gracefully when passed NULL arguments. >> >> Signed-off-by: Allan McRae <[email protected]> >> --- >> >> That is a lot of teduim for adding ".bak" to the end of a string... >> >> I'd appreciate more eyes on these changes. > > Cool! > > Would it help to download the db to a temporary file, and rename it on > success? >
I looked at that approach quite some time ago. The issue is things like alpm_db_validate take a db pointer and construct paths using that. It could be worked around by creating a temporary sync directory and setting that in the handle, but I thought this way was easier/cleaner. Allan
