[Cluster-devel] cluster/rgmanager/src/daemons resrules.c
lhh at sourceware.org
lhh at sourceware.org
Thu May 31 18:37:50 UTC 2007
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: lhh at sourceware.org 2007-05-31 18:37:50
Modified files:
rgmanager/src/daemons: resrules.c
Log message:
Resolves: #234249
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/resrules.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.16.2.3&r2=1.16.2.4
--- cluster/rgmanager/src/daemons/resrules.c 2007/05/10 16:23:43 1.16.2.3
+++ cluster/rgmanager/src/daemons/resrules.c 2007/05/31 18:37:50 1.16.2.4
@@ -1010,8 +1010,9 @@
{
DIR *dir;
struct dirent *de;
- char *fn;//, *dot;
+ char *fn, *dot;
char path[2048];
+ struct stat st_buf;
dir = opendir(rpath);
if (!dir)
@@ -1024,14 +1025,40 @@
if (!fn)
continue;
+ /* Ignore files with common backup extension */
if ((fn != NULL) && (strlen(fn) > 0) &&
(fn[strlen(fn)-1] == '~'))
continue;
+ /* Ignore hidden files */
+ if (*fn == '.')
+ continue;
+
+ dot = strrchr(fn, '.');
+ if (dot) {
+ /* Ignore RPM installed save files, patches,
+ diffs, etc. */
+ if (!strncasecmp(dot, ".rpm", 4)) {
+ fprintf(stderr, "Warning: "
+ "Ignoring %s/%s: Bad extension %s\n",
+ rpath, de->d_name, dot);
+ continue;
+ }
+ }
+
snprintf(path, sizeof(path), "%s/%s",
rpath, de->d_name);
- load_resource_rulefile(path, rules);
+ if (stat(path, &st_buf) < 0)
+ continue;
+
+ if (S_ISDIR(st_buf.st_mode))
+ continue;
+
+ if (st_buf.st_mode & (S_IXUSR|S_IXOTH|S_IXGRP)) {
+ printf("Loading resource rule from %s\n", path);
+ load_resource_rulefile(path, rules);
+ }
}
xmlCleanupParser();
More information about the Cluster-devel
mailing list