diff options
author | Jan Pokorný <jpokorny@redhat.com> | 2015-03-10 19:05:46 +0100 |
---|---|---|
committer | Jan Pokorný <jpokorny@redhat.com> | 2015-03-16 22:39:46 +0100 |
commit | 1cd32f29b9fd8a97957b637aea91f0fc859b2232 (patch) | |
tree | a0a61f6d64a68a7c6baf5d84afb9104b762fc0f0 /__root__ | |
parent | db9b15b1c95bb29da27be4cbb94d04880c1323e7 (diff) | |
download | clufter-1cd32f29b9fd8a97957b637aea91f0fc859b2232.tar.gz clufter-1cd32f29b9fd8a97957b637aea91f0fc859b2232.tar.xz clufter-1cd32f29b9fd8a97957b637aea91f0fc859b2232.zip |
ccs-flatten: minor fixes and simplifications
- add "#ifdef RA_METADATA_EXT" where also advisable
- closedir before possibly returning, not the other way around
- reflect the fact basename doesn't return NULL and work
with its return value directly
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
Diffstat (limited to '__root__')
-rw-r--r-- | __root__/ccs-flatten/flatten.c | 2 | ||||
-rw-r--r-- | __root__/ccs-flatten/resrules.c | 15 |
2 files changed, 11 insertions, 6 deletions
diff --git a/__root__/ccs-flatten/flatten.c b/__root__/ccs-flatten/flatten.c index 08745a0..4f2a75e 100644 --- a/__root__/ccs-flatten/flatten.c +++ b/__root__/ccs-flatten/flatten.c @@ -151,7 +151,9 @@ flatten(int argc, char **argv) load_resource_rules(agentpath, &rulelist, rawmetadata); if (rulelist) break; +#ifdef RA_METADATA_EXT rawmetadata = !rawmetadata; +#endif } while (rawmetadata); if (!rulelist) { fprintf(stderr, "No resource rules available\n"); diff --git a/__root__/ccs-flatten/resrules.c b/__root__/ccs-flatten/resrules.c index bf76bd5..4d8e485 100644 --- a/__root__/ccs-flatten/resrules.c +++ b/__root__/ccs-flatten/resrules.c @@ -914,7 +914,7 @@ load_resource_rules(const char *rpath, resource_rule_t ** rules, { DIR *dir; struct dirent *de; - char *fn, *dot, path[2048]; + char *fn, *dot, path[2048] = ""; typedef char pathT[PATH_MAX]; pathT pathbuf1 = "/proc/self/exe", pathbuf2 = ""; pathT *path1 = &pathbuf1, *path2 = &pathbuf2; @@ -922,16 +922,19 @@ load_resource_rules(const char *rpath, resource_rule_t ** rules, glob_t globbuf; int i; + /* jump to "convenient fallback" if there are no metadata present +#ifdef RA_METADATA_EXT snprintf(path, sizeof(path), "%s/*.%s", rpath, RA_METADATA_EXT); +#endif if (!( (dir = opendir(rpath)) && (!rawmetadata || !glob(path, GLOB_NOSORT, NULL, &globbuf)) )) { /* convenient fallback for local/test deployment, rawmetadata only */ - if (!rawmetadata) - return -1; if (dir) closedir(dir); + if (!rawmetadata) + return -1; for (i = 0; i < 8; i++) { errno = 0; if (readlink(*path1, *path2, sizeof(*path2)/sizeof(**path2)) @@ -959,7 +962,7 @@ load_resource_rules(const char *rpath, resource_rule_t ** rules, continue; /* Ignore files with common backup extension */ - if ((fn != NULL) && (strlen(fn) > 0) && (fn[strlen(fn) - 1] == '~')) + if ((strlen(fn) > 0) && (fn[strlen(fn) - 1] == '~')) continue; /* Ignore hidden files */ @@ -972,7 +975,7 @@ load_resource_rules(const char *rpath, resource_rule_t ** rules, diffs, etc. */ if (!strncasecmp(dot, ".rpm", 4)) { fprintf(stderr, "Warning: " - "Ignoring %s/%s: Bad extension %s\n", rpath, de->d_name, dot); + "Ignoring %s/%s: Bad extension %s\n", rpath, fn, dot); continue; } } @@ -983,7 +986,7 @@ load_resource_rules(const char *rpath, resource_rule_t ** rules, continue; #endif - snprintf(path, sizeof(path), "%s/%s", rpath, de->d_name); + snprintf(path, sizeof(path), "%s/%s", rpath, fn); if (stat(path, &st_buf) < 0) continue; |