[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