src/main.c
changeset 435 275a4428c13b
parent 425 0c8bdd8dc942
child 442 c4bcba8023a9
     1.1 --- a/src/main.c	Thu Feb 16 17:44:25 2012 +0000
     1.2 +++ b/src/main.c	Tue Mar 27 21:32:46 2012 +0100
     1.3 @@ -699,6 +699,7 @@
     1.4  	struct razor_importer *importer;
     1.5  	struct razor_set *set;
     1.6  	struct razor_rpm *rpm;
     1.7 +	struct razor_error *error=NULL;
     1.8  	struct razor_atomic *atomic;
     1.9  	int len, imported_count = 0;
    1.10  	char filename[256];
    1.11 @@ -724,14 +725,13 @@
    1.12  			continue;
    1.13  		snprintf(filename, sizeof filename,
    1.14  			 "%s/%s", dirname, de->d_name);
    1.15 -		atomic = razor_atomic_open("Read RPM");
    1.16 -		rpm = razor_rpm_open(filename, atomic);
    1.17 -		if (rpm == NULL)
    1.18 -			fprintf(stderr, "%s\n",
    1.19 -				razor_atomic_get_error_msg(atomic));
    1.20 -		razor_atomic_destroy(atomic);
    1.21 -		if (rpm == NULL)
    1.22 +		rpm = razor_rpm_open(filename, &error);
    1.23 +		if (rpm == NULL) {
    1.24 +			fprintf(stderr, "%s\n", razor_error_get_msg(error));
    1.25 +			razor_error_free(error);
    1.26 +			error=NULL;
    1.27  			continue;
    1.28 +		}
    1.29  		if (razor_importer_add_rpm(importer, rpm)) {
    1.30  			fprintf(stderr, "couldn't import %s\n", filename);
    1.31  			break;
    1.32 @@ -830,6 +830,7 @@
    1.33   	struct razor_package *package;
    1.34  	struct razor_property *property;
    1.35  	struct razor_rpm *rpm;
    1.36 +	struct razor_error *error=NULL;
    1.37  	const char *name, *version, *arch, *summary, *desc, *url, *license;
    1.38  	const char *preunprog, *preun, *postunprog, *postun;
    1.39  	const char *install_prefix;
    1.40 @@ -856,9 +857,11 @@
    1.41  		s = rpm_filename(name, version, arch);
    1.42  		file = razor_concat("rpms/", s, NULL);
    1.43  		free(s);
    1.44 -		rpm = razor_rpm_open(file, atomic);
    1.45 +		rpm = razor_rpm_open(file, &error);
    1.46  		free(file);
    1.47  		if (rpm == NULL) {
    1.48 +			razor_atomic_abort(atomic, razor_error_get_msg(error));
    1.49 +			razor_error_free(error);
    1.50  			razor_package_iterator_destroy(pkg_iter);
    1.51  			razor_importer_destroy(importer);
    1.52  			return NULL;
    1.53 @@ -917,6 +920,7 @@
    1.54  	const char *name, *version, *arch;
    1.55  	char *file, *s;
    1.56  	struct razor_rpm *rpm;
    1.57 +	struct razor_error *error=NULL;
    1.58  
    1.59  	razor_package_get_details(set, package,
    1.60  				  RAZOR_DETAIL_NAME, &name,
    1.61 @@ -930,11 +934,12 @@
    1.62  	s = rpm_filename(name, version, arch);
    1.63  	file = razor_concat("rpms/", s, NULL);
    1.64  	free(s);
    1.65 -	rpm = razor_rpm_open(file, atomic);
    1.66 +	rpm = razor_rpm_open(file, &error);
    1.67  	free(file);
    1.68  	if (rpm == NULL) {
    1.69 -		fprintf(stderr, "%s\n",
    1.70 -			razor_atomic_get_error_msg(atomic));
    1.71 +		razor_atomic_abort(atomic, razor_error_get_msg(error));
    1.72 +		fprintf(stderr, "%s\n", razor_error_get_msg(error));
    1.73 +		razor_error_free(error);
    1.74  		return -1;
    1.75  	}
    1.76  	if (relocations)