[Cluster-devel] conga/ricci/modules/cluster/clumon/src/common ...

rmccabe at sourceware.org rmccabe at sourceware.org
Wed Oct 10 18:19:30 UTC 2007


CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL4
Changes by:	rmccabe at sourceware.org	2007-10-10 18:19:30

Modified files:
	ricci/modules/cluster/clumon/src/common: Cluster.cpp 

Log message:
	Rest of fix for 326571

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/cluster/clumon/src/common/Cluster.cpp.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.6.4.1&r2=1.6.4.2

--- conga/ricci/modules/cluster/clumon/src/common/Cluster.cpp	2007/10/10 18:10:37	1.6.4.1
+++ conga/ricci/modules/cluster/clumon/src/common/Cluster.cpp	2007/10/10 18:19:30	1.6.4.2
@@ -69,36 +69,20 @@
 unsigned int
 Cluster::votes()
 {
-	cman_handle_t ch = cman_init(NULL);
-	if (ch != NULL) {
-		cman_node_t this_node;
-		int ret;
+	FILE *fp;
 
-		ret = cman_get_node(ch, CMAN_NODEID_US, &this_node);
-		cman_finish(ch);
-		if (ret == 0) {
-			FILE *fp = fopen("/proc/cluster/nodes", "r");
-			if (fp != NULL) {
-				char buf[4096];
-				while (fgets(buf, sizeof(buf), fp) != NULL) {
-					int nodeid = -1;
-					int votes = -1;
-				
-					if (!strncmp("Node", buf, 4)) {
-						/* header */
-						continue;
-					}
-					ret = sscanf(buf, "%d %d %*d %*c %*s\n", &nodeid, &votes);
-					if (ret != 2)
-						continue;
-					if (nodeid == this_node.cn_nodeid) {
-						fclose(fp);
-						return (votes);
-					}
-				}
+	fp = fopen("/proc/cluster/status", "r");
+	if (fp != NULL) {
+		char buf[4096];
+		int votes = -1;
+
+		while (fgets(buf, sizeof(buf), fp) != NULL) {
+			if (sscanf(buf, "Total_votes: %d\n", &votes) == 1) {
 				fclose(fp);
+				return (votes);
 			}
 		}
+		fclose(fp);
 	}
 
 	unsigned int votes = 0;




More information about the Cluster-devel mailing list