PAKFIRE_FILE_SIZE_CHANGED = (1 << 4),
PAKFIRE_FILE_OWNER_CHANGED = (1 << 5),
PAKFIRE_FILE_GROUP_CHANGED = (1 << 6),
+ PAKFIRE_FILE_CTIME_CHANGED = (1 << 7),
+ PAKFIRE_FILE_MTIME_CHANGED = (1 << 8),
};
struct pakfire_file {
return 0;
}
+static int pakfire_file_verify_timestamps(struct pakfire_file* file, const struct stat* st) {
+ // Check creation time
+ if (file->ctime != st->st_ctime) {
+ file->verify_status |= PAKFIRE_FILE_CTIME_CHANGED;
+
+ DEBUG(file->pakfire, "%s: Creation time changed\n", file->path);
+ }
+
+ // Check modification time
+ if (file->mtime != st->st_mtime) {
+ file->verify_status |= PAKFIRE_FILE_MTIME_CHANGED;
+
+ DEBUG(file->pakfire, "%s: Modification time changed\n", file->path);
+ }
+
+ return 0;
+}
+
/*
Verify the file - i.e. does the metadata match what is on disk?
*/
if (r)
return r;
+ // Verify timestamps
+ r = pakfire_file_verify_timestamps(file, &st);
+ if (r)
+ return r;
+
return 0;
}