1.1 --- a/librazor/root.c Mon Sep 08 10:26:39 2014 +0100
1.2 +++ b/librazor/root.c Fri Apr 15 16:57:55 2016 +0100
1.3 @@ -24,6 +24,7 @@
1.4 #include <stdint.h>
1.5 #include <stdio.h>
1.6 #include <string.h>
1.7 +#include <errno.h>
1.8 #include <sys/stat.h>
1.9 #include <dirent.h>
1.10 #include <unistd.h>
1.11 @@ -125,12 +126,13 @@
1.12 /* root is file system root */
1.13 } else if (stat(root, &buf) < 0) {
1.14 if (mkdir(root, 0777) < 0) {
1.15 - razor_set_error(error, root,
1.16 + razor_set_error(error, RAZOR_POSIX_ERROR, errno, root,
1.17 "Could not create install root");
1.18 return -1;
1.19 }
1.20 } else if (!S_ISDIR(buf.st_mode)) {
1.21 - razor_set_error(error, root, "Not a directory");
1.22 + razor_set_error(error, RAZOR_POSIX_ERROR, ENOTDIR, root,
1.23 + "Not a directory");
1.24 return -1;
1.25 }
1.26
1.27 @@ -139,7 +141,8 @@
1.28 path = razor_path_add_root(file, root);
1.29 retval = !stat(path, &buf);
1.30 if (retval) {
1.31 - razor_set_error(error, NULL,
1.32 + razor_set_error(error, RAZOR_GENERAL_ERROR,
1.33 + RAZOR_GENERAL_ERROR_DATABASE_EXISTS, NULL,
1.34 "A razor install root is already initialized");
1.35 free(path);
1.36 free(file);
1.37 @@ -175,14 +178,16 @@
1.38 razor_root_init();
1.39 image = malloc(sizeof *image);
1.40 if (image == NULL) {
1.41 - razor_set_error(error, NULL, "Not enough memory");
1.42 + razor_set_error(error, RAZOR_POSIX_ERROR, ENOMEM, NULL,
1.43 + "Not enough memory");
1.44 return NULL;
1.45 }
1.46
1.47 image->system = razor_set_create_without_root();
1.48 if (image->system == NULL) {
1.49 free(image);
1.50 - razor_set_error(error, NULL, "Not enough memory");
1.51 + razor_set_error(error, RAZOR_POSIX_ERROR, ENOMEM, NULL,
1.52 + "Not enough memory");
1.53 return NULL;
1.54 }
1.55
1.56 @@ -195,7 +200,8 @@
1.57 free(lock_path);
1.58
1.59 if (r < 0) {
1.60 - razor_set_error(error, NULL,
1.61 + razor_set_error(error, RAZOR_GENERAL_ERROR,
1.62 + RAZOR_GENERAL_ERROR_DATABASE_LOCKED, NULL,
1.63 "Failed to aquire exclusive system lock");
1.64 razor_set_unref(image->system);
1.65 free(image);
1.66 @@ -228,7 +234,8 @@
1.67 razor_root_init();
1.68 set = razor_set_create_without_root();
1.69 if (set == NULL) {
1.70 - razor_set_error(error, NULL, "Not enough memory");
1.71 + razor_set_error(error, RAZOR_POSIX_ERROR, ENOMEM, NULL,
1.72 + "Not enough memory");
1.73 return NULL;
1.74 }
1.75
1.76 @@ -237,7 +244,8 @@
1.77 free(s);
1.78
1.79 if (razor_set_aquire_lock(set, path, 0) < 0) {
1.80 - razor_set_error(error, NULL,
1.81 + razor_set_error(error, RAZOR_GENERAL_ERROR,
1.82 + RAZOR_GENERAL_ERROR_DATABASE_LOCKED, NULL,
1.83 "Failed to aquire non-exclusive system lock");
1.84 free(path);
1.85 razor_set_unref(set);