// Path
const char* path = (const char*)sqlite3_column_text(stmt, 0);
- if (path)
- pakfire_file_set_path(file, path);
+
+ // Abort if no path is set
+ if (!path) {
+ ERROR(db->pakfire, "File has no path\n");
+ r = 1;
+ goto ERROR;
+ }
+
+ // Set path
+ r = pakfire_file_set_path(file, path);
+ if (r) {
+ ERROR(db->pakfire, "%s: Could not set path '%s': %m\n", path, path);
+ goto ERROR;
+ }
// Size
size_t size = sqlite3_column_int64(stmt, 1);
// User
const char* user = (const char*)sqlite3_column_text(stmt, 3);
- if (user)
- pakfire_file_set_user(file, user);
+
+ // Abort if no user is set
+ if (!user) {
+ ERROR(db->pakfire, "%s: No user\n", path);
+ r = 1;
+ goto ERROR;
+ }
+
+ // Set user
+ r = pakfire_file_set_user(file, user);
+ if (r) {
+ ERROR(db->pakfire, "%s: Could not set user '%s': %m\n", path, user);
+ goto ERROR;
+ }
// Group
const char* group = (const char*)sqlite3_column_text(stmt, 4);
- if (group)
- pakfire_file_set_group(file, group);
+
+ // Abort if no group is set
+ if (!group) {
+ ERROR(db->pakfire, "%s: No group\n", path);
+ r = 1;
+ goto ERROR;
+ }
+
+ // Set group
+ r = pakfire_file_set_group(file, group);
+ if (r) {
+ ERROR(db->pakfire, "%s: Could not set group '%s': %m\n", path, group);
+ goto ERROR;
+ }
// ctime
time_t ctime = sqlite3_column_int64(stmt, 5);
// Append the file to the filelist
r = pakfire_filelist_append(filelist, file);
+ if (r)
+ goto ERROR;
ERROR:
if (file)
return file->user;
}
-PAKFIRE_EXPORT void pakfire_file_set_user(struct pakfire_file* file, const char* user) {
- pakfire_string_set(file->user, user);
+PAKFIRE_EXPORT int pakfire_file_set_user(struct pakfire_file* file, const char* user) {
+ return pakfire_string_set(file->user, user);
}
PAKFIRE_EXPORT const char* pakfire_file_get_group(struct pakfire_file* file) {
return file->group;
}
-PAKFIRE_EXPORT void pakfire_file_set_group(struct pakfire_file* file, const char* group) {
- pakfire_string_set(file->group, group);
+PAKFIRE_EXPORT int pakfire_file_set_group(struct pakfire_file* file, const char* group) {
+ return pakfire_string_set(file->group, group);
}
PAKFIRE_EXPORT mode_t pakfire_file_get_mode(struct pakfire_file* file) {
void pakfire_file_set_size(struct pakfire_file* file, ssize_t size);
const char* pakfire_file_get_user(struct pakfire_file* file);
-void pakfire_file_set_user(struct pakfire_file* file, const char* user);
+int pakfire_file_set_user(struct pakfire_file* file, const char* user);
const char* pakfire_file_get_group(struct pakfire_file* file);
-void pakfire_file_set_group(struct pakfire_file* file, const char* group);
+int pakfire_file_set_group(struct pakfire_file* file, const char* group);
mode_t pakfire_file_get_mode(struct pakfire_file* file);
void pakfire_file_set_mode(struct pakfire_file* file, mode_t mode);