pakfire_file_set_hardlink(file, archive_entry_hardlink(entry));
pakfire_file_set_symlink(file, archive_entry_symlink(entry));
+ pakfire_file_set_nlink(file, archive_entry_nlink(entry));
+ pakfire_file_set_inode(file, archive_entry_ino64(entry));
+ pakfire_file_set_dev(file, archive_entry_dev(entry));
+
// Set size
pakfire_file_set_size(file, archive_entry_size(entry));
if (*file->symlink)
archive_entry_set_symlink(entry, file->symlink);
+ archive_entry_set_nlink(entry, pakfire_file_get_nlink(file));
+ archive_entry_set_ino64(entry, pakfire_file_get_inode(file));
+ archive_entry_set_dev(entry, pakfire_file_get_dev(file));
+
// Set size
archive_entry_set_size(entry, pakfire_file_get_size(file));
pakfire_string_set(file->symlink, link);
}
+PAKFIRE_EXPORT nlink_t pakfire_file_get_nlink(struct pakfire_file* file) {
+ return file->st.st_nlink;
+}
+
+PAKFIRE_EXPORT void pakfire_file_set_nlink(struct pakfire_file* file, const nlink_t nlink) {
+ file->st.st_nlink = nlink;
+}
+
+PAKFIRE_EXPORT ino_t pakfire_file_get_inode(struct pakfire_file* file) {
+ return file->st.st_ino;
+}
+
+PAKFIRE_EXPORT void pakfire_file_set_inode(struct pakfire_file* file, const ino_t ino) {
+ file->st.st_ino = ino;
+}
+
+PAKFIRE_EXPORT dev_t pakfire_file_get_dev(struct pakfire_file* file) {
+ return file->st.st_dev;
+}
+
+PAKFIRE_EXPORT void pakfire_file_set_dev(struct pakfire_file* file, const dev_t dev) {
+ file->st.st_dev = dev;
+}
+
PAKFIRE_EXPORT int pakfire_file_get_type(struct pakfire_file* file) {
return file->st.st_mode & S_IFMT;
}
file->st.st_mode |= ~S_IFMT & perms;
}
-PAKFIRE_EXPORT dev_t pakfire_file_get_dev(struct pakfire_file* file) {
- return file->st.st_dev;
-}
-
-PAKFIRE_EXPORT void pakfire_file_set_dev(struct pakfire_file* file, dev_t dev) {
- file->st.st_dev = dev;
-}
-
PAKFIRE_EXPORT time_t pakfire_file_get_ctime(struct pakfire_file* file) {
return file->st.st_ctime;
}
DEBUG(file->pakfire, "%s: Permissions changed\n", file->path);
}
+#if 0
+ // XXX This does not check what it is supposed to check
+
// Check if device node changed
if (S_ISCHR(st->st_mode) || S_ISBLK(st->st_mode)) {
const dev_t dev = pakfire_file_get_dev(file);
DEBUG(file->pakfire, "%s: Device Node changed\n", file->path);
}
}
+#endif
return 0;
}
const char* pakfire_file_get_symlink(struct pakfire_file* file);
void pakfire_file_set_symlink(struct pakfire_file* file, const char* link);
+nlink_t pakfire_file_get_nlink(struct pakfire_file* file);
+void pakfire_file_set_nlink(struct pakfire_file* file, const nlink_t nlink);
+
+ino_t pakfire_file_get_inode(struct pakfire_file* file);
+void pakfire_file_set_inode(struct pakfire_file* file, const ino_t ino);
+
+dev_t pakfire_file_get_dev(struct pakfire_file* file);
+void pakfire_file_set_dev(struct pakfire_file* file, const dev_t dev);
+
int pakfire_file_get_type(struct pakfire_file* file);
ssize_t pakfire_file_get_size(struct pakfire_file* file);
mode_t pakfire_file_get_perms(struct pakfire_file* file);
void pakfire_file_set_perms(struct pakfire_file* file, const mode_t perms);
-dev_t pakfire_file_get_dev(struct pakfire_file* file);
-void pakfire_file_set_dev(struct pakfire_file* file, dev_t dev);
-
time_t pakfire_file_get_ctime(struct pakfire_file* file);
void pakfire_file_set_ctime(struct pakfire_file* file, time_t time);
time_t pakfire_file_get_mtime(struct pakfire_file* file);