Add return codes to razor_set_open_files and open_details
authorJames Bowes <jbowes@redhat.com>
Thu Jun 26 17:16:13 2008 -0400 (2008-06-26)
changeset 28875da311eda45
parent 287 026c47621214
child 289 dc69c55cf462
Add return codes to razor_set_open_files and open_details
librazor/razor.c
librazor/razor.h
src/main.c
src/rpm.c
     1.1 --- a/librazor/razor.c	Thu Jun 26 10:37:45 2008 -0400
     1.2 +++ b/librazor/razor.c	Thu Jun 26 17:16:13 2008 -0400
     1.3 @@ -119,7 +119,7 @@
     1.4  	return set;
     1.5  }
     1.6  
     1.7 -RAZOR_EXPORT void
     1.8 +RAZOR_EXPORT int
     1.9  razor_set_open_details(struct razor_set *set, const char *filename)
    1.10  {
    1.11  	struct razor_set_section *s;
    1.12 @@ -129,10 +129,10 @@
    1.13  
    1.14  	fd = open(filename, O_RDONLY);
    1.15  	if (fstat(fd, &stat) < 0)
    1.16 -		return;
    1.17 +		return -1;
    1.18  	set->details_header = mmap(NULL, stat.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
    1.19  	if (set->details_header == MAP_FAILED)
    1.20 -		return;
    1.21 +		return -1;
    1.22  
    1.23  	for (s = set->details_header->sections; ~s->type; s++) {
    1.24  		if (s->type >= ARRAY_SIZE(razor_details_sections))
    1.25 @@ -145,9 +145,11 @@
    1.26  		array->alloc = s->size;
    1.27  	}
    1.28  	close(fd);
    1.29 +
    1.30 +	return 0;
    1.31  }
    1.32  
    1.33 -RAZOR_EXPORT void
    1.34 +RAZOR_EXPORT int
    1.35  razor_set_open_files(struct razor_set *set, const char *filename)
    1.36  {
    1.37  	struct razor_set_section *s;
    1.38 @@ -157,10 +159,10 @@
    1.39  
    1.40  	fd = open(filename, O_RDONLY);
    1.41  	if (fstat(fd, &stat) < 0)
    1.42 -		return;
    1.43 +		return -1;
    1.44  	set->files_header = mmap(NULL, stat.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
    1.45  	if (set->files_header == MAP_FAILED)
    1.46 -		return;
    1.47 +		return -1;
    1.48  
    1.49  	for (s = set->files_header->sections; ~s->type; s++) {
    1.50  		if (s->type >= ARRAY_SIZE(razor_files_sections))
    1.51 @@ -173,6 +175,8 @@
    1.52  		array->alloc = s->size;
    1.53  	}
    1.54  	close(fd);
    1.55 +
    1.56 +	return 0;
    1.57  }
    1.58  
    1.59  RAZOR_EXPORT void
     2.1 --- a/librazor/razor.h	Thu Jun 26 10:37:45 2008 -0400
     2.2 +++ b/librazor/razor.h	Thu Jun 26 17:16:13 2008 -0400
     2.3 @@ -77,8 +77,8 @@
     2.4  int razor_set_write(struct razor_set *set, const char *filename,
     2.5  		    enum razor_repo_file_type type);
     2.6  
     2.7 -void razor_set_open_details(struct razor_set *set, const char *filename);
     2.8 -void razor_set_open_files(struct razor_set *set, const char *filename);
     2.9 +int razor_set_open_details(struct razor_set *set, const char *filename);
    2.10 +int razor_set_open_files(struct razor_set *set, const char *filename);
    2.11  
    2.12  struct razor_package *
    2.13  razor_set_get_package(struct razor_set *set, const char *package);
     3.1 --- a/src/main.c	Thu Jun 26 10:37:45 2008 -0400
     3.2 +++ b/src/main.c	Thu Jun 26 17:16:13 2008 -0400
     3.3 @@ -198,9 +198,11 @@
     3.4  	struct razor_set *set;
     3.5  
     3.6  	set = razor_set_open(repo_filename);
     3.7 -	razor_set_open_files(set, "system-files.repo");
     3.8  	if (set == NULL)
     3.9  		return 1;
    3.10 +	if (razor_set_open_files(set, "system-files.repo"))
    3.11 +		return 1;
    3.12 +
    3.13  	razor_set_list_files(set, argv[0]);
    3.14  	razor_set_destroy(set);
    3.15  
    3.16 @@ -214,9 +216,10 @@
    3.17  	struct razor_package_iterator *pi;
    3.18  
    3.19  	set = razor_set_open(repo_filename);
    3.20 -	razor_set_open_files(set, "system-files.repo");
    3.21  	if (set == NULL)
    3.22  		return 1;
    3.23 +	if (razor_set_open_files(set, "system-files.repo"))
    3.24 +		return 1;
    3.25  
    3.26  	pi = razor_package_iterator_create_for_file(set, argv[0]);
    3.27  	list_packages(pi, 0);
    3.28 @@ -233,9 +236,11 @@
    3.29  	struct razor_set *set;
    3.30  
    3.31  	set = razor_set_open(repo_filename);
    3.32 -	razor_set_open_files(set, "system-files.repo");
    3.33  	if (set == NULL)
    3.34  		return 1;
    3.35 +	if (razor_set_open_files(set, "system-files.repo"))
    3.36 +		return 1;
    3.37 +
    3.38  	razor_set_list_package_files(set, argv[0]);
    3.39  	razor_set_destroy(set);
    3.40  
    3.41 @@ -824,7 +829,10 @@
    3.42  	const char *summary, *description, *url, *license;
    3.43  
    3.44  	set = razor_set_open(repo_filename);
    3.45 -	razor_set_open_details(set, "system-details.repo");
    3.46 +	if (set == NULL)
    3.47 +		return 1;
    3.48 +	if (razor_set_open_details(set, "system-details.repo"))
    3.49 +		return 1;
    3.50  	pi = razor_package_iterator_create(set);
    3.51  	while (razor_package_iterator_next(pi, &package,
    3.52  					   &name, &version, &arch)) {
     4.1 --- a/src/rpm.c	Thu Jun 26 10:37:45 2008 -0400
     4.2 +++ b/src/rpm.c	Thu Jun 26 17:16:13 2008 -0400
     4.3 @@ -350,7 +350,8 @@
     4.4  
     4.5  	files = "install/var/lib/razor/system-files.repo";
     4.6  	if (option_file)
     4.7 -		razor_set_open_files(set, files);
     4.8 +		if (razor_set_open_files(set, files))
     4.9 +			exit(1);
    4.10  
    4.11  	query = razor_package_query_create(set);
    4.12  
    4.13 @@ -479,10 +480,12 @@
    4.14  	/* FIXME: We need to figure out how to do this right. */
    4.15  	details = "install/var/lib/razor/system-details.repo";
    4.16  	if (option_info)
    4.17 -		razor_set_open_details(set, details);
    4.18 +		if (razor_set_open_details(set, details))
    4.19 +			return;
    4.20  	files = "install/var/lib/razor/system-files.repo";
    4.21  	if (option_list)
    4.22 -		razor_set_open_files(set, files);
    4.23 +		if (razor_set_open_files(set, files))
    4.24 +			return;
    4.25  
    4.26  	while (razor_package_iterator_next(pi, &package,
    4.27  					   &name, &version, &arch)) {