1.1 --- a/librazor/root.c Mon Jul 04 10:48:18 2016 +0100
1.2 +++ b/librazor/root.c Fri Jun 08 18:02:49 2018 +0100
1.3 @@ -1,7 +1,7 @@
1.4 /*
1.5 * Copyright (C) 2008 Kristian Høgsberg <krh@redhat.com>
1.6 * Copyright (C) 2008 Red Hat, Inc
1.7 - * Copyright (C) 2009, 2011, 2012, 2014, 2016 J. Ali Harlow <ali@juiblex.co.uk>
1.8 + * Copyright (C) 2009, 2011, 2012, 2014, 2016, 2018 J. Ali Harlow <ali@juiblex.co.uk>
1.9 *
1.10 * This program is free software; you can redistribute it and/or modify
1.11 * it under the terms of the GNU General Public License as published by
1.12 @@ -67,6 +67,7 @@
1.13 #endif
1.14 static char *razor_database_uri = RAZOR_DATABASE_URI;
1.15 static int razor_database_uri_alloced = FALSE;
1.16 +static int razor_database_uri_default = TRUE;
1.17
1.18 struct razor_root {
1.19 struct razor_set *system;
1.20 @@ -107,9 +108,11 @@
1.21 if (database_uri) {
1.22 razor_database_uri = strdup(database_uri);
1.23 razor_database_uri_alloced = TRUE;
1.24 + razor_database_uri_default = FALSE;
1.25 } else {
1.26 razor_database_uri = RAZOR_DATABASE_URI;
1.27 razor_database_uri_alloced = FALSE;
1.28 + razor_database_uri_default = TRUE;
1.29 }
1.30 }
1.31
1.32 @@ -223,14 +226,13 @@
1.33 return NULL;
1.34 }
1.35
1.36 - r = razor_set_acquire_lock(image->system, lock_uri, 1);
1.37 + r = razor_set_acquire_lock(image->system, lock_uri, 1, error);
1.38
1.39 free(lock_uri);
1.40
1.41 if (r < 0) {
1.42 - razor_set_error(error, RAZOR_GENERAL_ERROR,
1.43 - RAZOR_GENERAL_ERROR_DATABASE_LOCKED, NULL,
1.44 - "Failed to acquire exclusive system lock");
1.45 + if (error && razor_database_uri_default)
1.46 + razor_error_set_object(*error, root_uri);
1.47 razor_set_unref(image->system);
1.48 free(image);
1.49 return NULL;
1.50 @@ -277,14 +279,13 @@
1.51 return NULL;
1.52 }
1.53
1.54 - r = razor_set_acquire_lock(set, uri, 0);
1.55 + r = razor_set_acquire_lock(set, uri, 0, error);
1.56
1.57 free(uri);
1.58
1.59 if (r < 0) {
1.60 - razor_set_error(error, RAZOR_GENERAL_ERROR,
1.61 - RAZOR_GENERAL_ERROR_DATABASE_LOCKED, NULL,
1.62 - "Failed to acquire non-exclusive system lock");
1.63 + if (error && razor_database_uri_default)
1.64 + razor_error_set_object(*error, root_uri);
1.65 razor_set_unref(set);
1.66 return NULL;
1.67 }