From mboxrd@z Thu Jan 1 00:00:00 1970 From: lhh@sourceware.org Date: 31 May 2007 18:37:50 -0000 Subject: [Cluster-devel] cluster/rgmanager/src/daemons resrules.c Message-ID: <20070531183750.3350.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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();