summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Bowes <jbowes@redhat.com>2008-06-26 17:16:13 -0400
committerJames Bowes <jbowes@redhat.com>2008-06-26 17:16:13 -0400
commitc57370decf4e204cf4e3323e669cc676a2760707 (patch)
tree6272c18f292a42f18223c71dd201caa497b4b098
parent436386fb11ee56e50c2c76c496b1f6c39530e170 (diff)
Add return codes to razor_set_open_files and open_details
-rw-r--r--librazor/razor.c16
-rw-r--r--librazor/razor.h4
-rw-r--r--src/main.c16
-rw-r--r--src/rpm.c9
4 files changed, 30 insertions, 15 deletions
diff --git a/librazor/razor.c b/librazor/razor.c
index 3bfee2f..b1d7a20 100644
--- a/librazor/razor.c
+++ b/librazor/razor.c
@@ -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
diff --git a/librazor/razor.h b/librazor/razor.h
index e5567f2..61edc1c 100644
--- a/librazor/razor.h
+++ b/librazor/razor.h
@@ -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);
diff --git a/src/main.c b/src/main.c
index d177bc5..268eece 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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)) {
diff --git a/src/rpm.c b/src/rpm.c
index 3cb8ddb..bb91354 100644
--- 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)) {