librazor/root.c
changeset 474 7442b30ecaae
parent 445 aada48958b92
child 475 008c75a5e08d
     1.1 --- a/librazor/root.c	Mon Sep 08 10:26:39 2014 +0100
     1.2 +++ b/librazor/root.c	Sat Jun 11 17:56:48 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);