Add return codes to razor_set_open_files and open_details
authorJames Bowes <jbowes@redhat.com>
Thu, 26 Jun 2008 21:16:13 +0000 (17:16 -0400)
committerJames Bowes <jbowes@redhat.com>
Thu, 26 Jun 2008 21:16:13 +0000 (17:16 -0400)
librazor/razor.c
librazor/razor.h
src/main.c
src/rpm.c

index 3bfee2f..b1d7a20 100644 (file)
@@ -119,7 +119,7 @@ razor_set_open(const char *filename)
        return set;
 }
 
-RAZOR_EXPORT void
+RAZOR_EXPORT int
 razor_set_open_details(struct razor_set *set, const char *filename)
 {
        struct razor_set_section *s;
@@ -129,10 +129,10 @@ razor_set_open_details(struct razor_set *set, const char *filename)
 
        fd = open(filename, O_RDONLY);
        if (fstat(fd, &stat) < 0)
-               return;
+               return -1;
        set->details_header = mmap(NULL, stat.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
        if (set->details_header == MAP_FAILED)
-               return;
+               return -1;
 
        for (s = set->details_header->sections; ~s->type; s++) {
                if (s->type >= ARRAY_SIZE(razor_details_sections))
@@ -145,9 +145,11 @@ razor_set_open_details(struct razor_set *set, const char *filename)
                array->alloc = s->size;
        }
        close(fd);
+
+       return 0;
 }
 
-RAZOR_EXPORT void
+RAZOR_EXPORT int
 razor_set_open_files(struct razor_set *set, const char *filename)
 {
        struct razor_set_section *s;
@@ -157,10 +159,10 @@ razor_set_open_files(struct razor_set *set, const char *filename)
 
        fd = open(filename, O_RDONLY);
        if (fstat(fd, &stat) < 0)
-               return;
+               return -1;
        set->files_header = mmap(NULL, stat.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
        if (set->files_header == MAP_FAILED)
-               return;
+               return -1;
 
        for (s = set->files_header->sections; ~s->type; s++) {
                if (s->type >= ARRAY_SIZE(razor_files_sections))
@@ -173,6 +175,8 @@ razor_set_open_files(struct razor_set *set, const char *filename)
                array->alloc = s->size;
        }
        close(fd);
+
+       return 0;
 }
 
 RAZOR_EXPORT void
index e5567f2..61edc1c 100644 (file)
@@ -77,8 +77,8 @@ int razor_set_write_to_fd(struct razor_set *set, int fd,
 int razor_set_write(struct razor_set *set, const char *filename,
                    enum razor_repo_file_type type);
 
-void razor_set_open_details(struct razor_set *set, const char *filename);
-void razor_set_open_files(struct razor_set *set, const char *filename);
+int razor_set_open_details(struct razor_set *set, const char *filename);
+int razor_set_open_files(struct razor_set *set, const char *filename);
 
 struct razor_package *
 razor_set_get_package(struct razor_set *set, const char *package);
index d177bc5..268eece 100644 (file)
@@ -198,9 +198,11 @@ command_list_files(int argc, const char *argv[])
        struct razor_set *set;
 
        set = razor_set_open(repo_filename);
-       razor_set_open_files(set, "system-files.repo");
        if (set == NULL)
                return 1;
+       if (razor_set_open_files(set, "system-files.repo"))
+               return 1;
+
        razor_set_list_files(set, argv[0]);
        razor_set_destroy(set);
 
@@ -214,9 +216,10 @@ command_list_file_packages(int argc, const char *argv[])
        struct razor_package_iterator *pi;
 
        set = razor_set_open(repo_filename);
-       razor_set_open_files(set, "system-files.repo");
        if (set == NULL)
                return 1;
+       if (razor_set_open_files(set, "system-files.repo"))
+               return 1;
 
        pi = razor_package_iterator_create_for_file(set, argv[0]);
        list_packages(pi, 0);
@@ -233,9 +236,11 @@ command_list_package_files(int argc, const char *argv[])
        struct razor_set *set;
 
        set = razor_set_open(repo_filename);
-       razor_set_open_files(set, "system-files.repo");
        if (set == NULL)
                return 1;
+       if (razor_set_open_files(set, "system-files.repo"))
+               return 1;
+
        razor_set_list_package_files(set, argv[0]);
        razor_set_destroy(set);
 
@@ -824,7 +829,10 @@ command_info(int argc, const char *argv[])
        const char *summary, *description, *url, *license;
 
        set = razor_set_open(repo_filename);
-       razor_set_open_details(set, "system-details.repo");
+       if (set == NULL)
+               return 1;
+       if (razor_set_open_details(set, "system-details.repo"))
+               return 1;
        pi = razor_package_iterator_create(set);
        while (razor_package_iterator_next(pi, &package,
                                           &name, &version, &arch)) {
index 3cb8ddb..bb91354 100644 (file)
--- a/src/rpm.c
+++ b/src/rpm.c
@@ -350,7 +350,8 @@ get_query_packages(struct razor_set *set, int argc, const char *argv[])
 
        files = "install/var/lib/razor/system-files.repo";
        if (option_file)
-               razor_set_open_files(set, files);
+               if (razor_set_open_files(set, files))
+                       exit(1);
 
        query = razor_package_query_create(set);
 
@@ -479,10 +480,12 @@ command_query(int argc, const char *argv[])
        /* FIXME: We need to figure out how to do this right. */
        details = "install/var/lib/razor/system-details.repo";
        if (option_info)
-               razor_set_open_details(set, details);
+               if (razor_set_open_details(set, details))
+                       return;
        files = "install/var/lib/razor/system-files.repo";
        if (option_list)
-               razor_set_open_files(set, files);
+               if (razor_set_open_files(set, files))
+                       return;
 
        while (razor_package_iterator_next(pi, &package,
                                           &name, &version, &arch)) {