[Cluster-devel] cluster/rgmanager/src/utils clustat.c

lhh at sourceware.org lhh at sourceware.org
Thu Dec 6 17:52:32 UTC 2007


CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL5
Changes by:	lhh at sourceware.org	2007-12-06 17:52:32

Modified files:
	rgmanager/src/utils: clustat.c 

Log message:
	Fix format warnings on newer GCC

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/utils/clustat.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.25.2.7&r2=1.25.2.8

--- cluster/rgmanager/src/utils/clustat.c	2007/11/30 19:47:15	1.25.2.7
+++ cluster/rgmanager/src/utils/clustat.c	2007/12/06 17:52:32	1.25.2.8
@@ -451,10 +451,9 @@
 
 void
 _txt_rg_state(rg_state_t *rs, cluster_member_list_t *members, int flags,
-	      char *fmt_buf, int ns)
+	      int svcsize, int nodesize, int statsize)
 {
 	char owner[MAXHOSTNAMELEN+1];
-	char owner_fmt[16];
 	char *name = rs->rs_name, *ptr;
 	int l;
 
@@ -469,27 +468,24 @@
 	}
 
 	memset(owner, 0, sizeof(owner));
-	memset(owner_fmt, 0, sizeof(owner_fmt));
 
 	if (rs->rs_state == RG_STATE_STOPPED ||
 	    rs->rs_state == RG_STATE_DISABLED ||
 	    rs->rs_state == RG_STATE_ERROR ||
 	    rs->rs_state == RG_STATE_FAILED) {
 
-		snprintf(owner_fmt, sizeof(owner_fmt)-1, "(%%-.%ds)", ns-2);
-		snprintf(owner, sizeof(owner)-1, owner_fmt,
+		snprintf(owner, sizeof(owner)-1, "(%-.*s)", nodesize-2,
 			 my_memb_id_to_name(members, rs->rs_last_owner));
 	} else {
 
-		snprintf(owner_fmt, sizeof(owner_fmt)-1, "%%-.%ds", ns);
-		snprintf(owner, sizeof(owner)-1, owner_fmt,
+		snprintf(owner, sizeof(owner)-1, "%-.*s", nodesize,
 			 my_memb_id_to_name(members, rs->rs_owner));
 	}
 	
-	printf(fmt_buf,
-	       name,
-	       owner,
-	       rg_state_str(rs->rs_state));
+	printf(" %-*.*s %-*.*s %-*.*s\n",
+	       svcsize, svcsize, rs->rs_name,
+	       nodesize, nodesize, owner,
+	       statsize, statsize, rg_state_str(rs->rs_state));
 }
 
 
@@ -509,12 +505,13 @@
 
 
 void
-txt_rg_state(rg_state_t *rs, cluster_member_list_t *members, int flags, char *fmt_buf, int ns)
+txt_rg_state(rg_state_t *rs, cluster_member_list_t *members, int flags, int svcsize, 
+	     int nodesize, int statsize)
 {
 	if (flags & RG_VERBOSE) 
 		_txt_rg_state_v(rs, members, flags);
 	else
-		_txt_rg_state(rs, members, flags, fmt_buf, ns);
+		_txt_rg_state(rs, members, flags, svcsize, nodesize, statsize);
 }
 
 
@@ -548,27 +545,20 @@
 
 
 void
-build_service_format(char *buf, int buflen, int cols, int *ns)
+build_service_field_sizes(int cols, int *svcsize, int *nodesize, int *statsize)
 {
 	/* Based on 80 columns */
-	int svcsize = 30;
-	int nodesize = 30;
-	int statsize = 14;	/* uninitialized */
+	*svcsize = 30;
+	*nodesize = 30;
+	*statsize = 14;	/* uninitialized */
 	int pad = 6;		/* Spaces and such; newline */
 
-	svcsize = (cols - (statsize + pad)) / 2;
-	nodesize = (cols - (statsize + pad)) / 2;
-	if (svcsize > MAXHOSTNAMELEN)
-		svcsize = MAXHOSTNAMELEN;
-	if (nodesize > MAXHOSTNAMELEN)
-		nodesize = MAXHOSTNAMELEN;
-
-	memset(buf, 0, buflen);
-	snprintf(buf, buflen-1, "  %%-%d.%ds %%-%d.%ds %%-%d.%ds\n",
-		 svcsize, svcsize, nodesize, nodesize, statsize,
-		 statsize);
-
-	*ns = nodesize;
+	*svcsize = (cols - (*statsize + pad)) / 2;
+	*nodesize = (cols - (*statsize + pad)) / 2;
+	if (*svcsize > MAXHOSTNAMELEN)
+		*svcsize = MAXHOSTNAMELEN;
+	if (*nodesize > MAXHOSTNAMELEN)
+		*nodesize = MAXHOSTNAMELEN;
 }
 
 
@@ -576,8 +566,7 @@
 txt_rg_states(rg_state_list_t *rgl, cluster_member_list_t *members, 
 	      char *svcname, int flags)
 {
-	int x, ret = 0, ns;
-	char fmt_buf[80];
+	int x, ret = 0, svcsize, nodesize, statsize;
 
 	if (!rgl || !members)
 		return -1;
@@ -585,14 +574,18 @@
 	if (svcname)
 		ret = -1;
 
-	build_service_format(fmt_buf, sizeof(fmt_buf), dimx, &ns);
+	build_service_field_sizes(dimx, &svcsize, &nodesize, &statsize);
 
 	if (!(flags & RG_VERBOSE)) {
 
-		printf(fmt_buf,
-		       "Service Name", "Owner (Last)", "State");
-		printf(fmt_buf,
-		       "------- ----", "----- ------", "-----");
+		printf(" %-*.*s %-*.*s %-*.*s\n",
+		       svcsize, svcsize, "Service Name",
+		       nodesize, nodesize, "Owner (Last)",
+	       	       statsize, statsize, "State");
+		printf(" %-*.*s %-*.*s %-*.*s\n",
+		       svcsize, svcsize, "------- ----",
+		       nodesize, nodesize, "----- ------",
+		       statsize, statsize, "-----");
 	} else {
 		printf("Service Information\n"
 		       "------- -----------\n\n");
@@ -602,7 +595,8 @@
 		if (svcname &&
 		    strcmp(rgl->rgl_states[x].rs_name, svcname))
 			continue;
-		txt_rg_state(&rgl->rgl_states[x], members, flags, fmt_buf, ns);
+		txt_rg_state(&rgl->rgl_states[x], members, flags,
+			     svcsize, nodesize, statsize);
 		if (svcname) {
 			switch (rgl->rgl_states[x].rs_state) {
 			case RG_STATE_STARTING:
@@ -706,25 +700,21 @@
 }
 
 void
-build_member_format(char *buf, int buflen, int cols)
+build_member_field_size(int cols, int *nodesize)
 {
 	/* Based on 80 columns */
-	int nodesize = 40;
-
-	nodesize = (cols / 2);
-	if (nodesize > MAXHOSTNAMELEN)
-		nodesize = MAXHOSTNAMELEN;
+	*nodesize = 40;
 
-	memset(buf, 0, buflen);
-	snprintf(buf, buflen-1, "  %%-%d.%ds ",
-		 nodesize, nodesize);
+	*nodesize = (cols / 2);
+	if (*nodesize > MAXHOSTNAMELEN)
+		*nodesize = MAXHOSTNAMELEN;
 }
 
 
 void
-txt_member_state(cman_node_t *node, char *fmt_buf)
+txt_member_state(cman_node_t *node, int nodesize)
 {
-	printf(fmt_buf, node->cn_name);
+	printf(" %-*.*s ", nodesize, nodesize, node->cn_name);
 	printf("%4d ", node->cn_nodeid);
 
 	if (node->cn_member & FLAG_UP)
@@ -776,25 +766,24 @@
 int
 txt_member_states(cluster_member_list_t *membership, char *name)
 {
-	char buf[80];
-	int x, ret = 0;
+	int x, ret = 0, nodesize;
 
   	if (!membership) {
   		printf("Membership information not available\n");
  		return -1;
   	}
 
-	build_member_format(buf, sizeof(buf), dimx);
+	build_member_field_size(dimx, &nodesize);
 
-	printf(buf, "Member Name");
+	printf(" %-*.*s", nodesize, nodesize, "Member Name");
 	printf("%-4.4s %s\n", "ID", "Status");
-	printf(buf, "------ ----");
+	printf(" %-*.*s", nodesize, nodesize, "------ ----");
 	printf("%-4.4s %s\n", "----", "------");
 
 	for (x = 0; x < membership->cml_count; x++) {
 		if (name && strcmp(membership->cml_members[x].cn_name, name))
 			continue;
-		txt_member_state(&membership->cml_members[x], buf);
+		txt_member_state(&membership->cml_members[x], nodesize);
  		ret = !(membership->cml_members[x].cn_member & FLAG_UP);
 	}
 
@@ -1072,8 +1061,12 @@
 		ret = !(cman_is_quorate(ch));
 		goto cleanup;
 	case VERSION_ONLY:
+#ifdef RELEASE_VERSION
 		printf("%s version %s\n", basename(argv[0]),
-		       PACKAGE_VERSION);
+		       RELEASE_VERSION);
+#else
+		printf("%s version DEVEL\n", basename(argv[0]));
+#endif
 		if (!ch)
 		       break;
 		goto cleanup;




More information about the Cluster-devel mailing list