[Cluster-devel] cluster/group/tool main.c

teigland at sourceware.org teigland at sourceware.org
Thu Jul 13 18:15:44 UTC 2006


CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	teigland at sourceware.org	2006-07-13 18:15:43

Modified files:
	group/tool     : main.c 

Log message:
	fix up group_tool dump which was broken

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/tool/main.c.diff?cvsroot=cluster&r1=1.15&r2=1.16

--- cluster/group/tool/main.c	2006/06/28 19:58:32	1.15
+++ cluster/group/tool/main.c	2006/07/13 18:15:43	1.16
@@ -20,6 +20,7 @@
 #include <stddef.h>
 #include <fcntl.h>
 #include <string.h>
+#include <errno.h>
 #include <netinet/in.h>
 
 #include "libgroup.h"
@@ -293,20 +294,26 @@
 
 int do_dump(int argc, char **argv)
 {
-	char buf[DUMP_SIZE];
+	char inbuf[DUMP_SIZE];
+	char outbuf[GROUPD_MSGLEN];
 	int rv, fd = connect_groupd();
 
-	rv = write(fd, "dump", 4);
-	if (rv != 4)
-		return -1;
+	memset(inbuf, 0, sizeof(inbuf));
+	memset(outbuf, 0, sizeof(outbuf));
 
-	memset(buf, 0, sizeof(buf));
+	sprintf(outbuf, "dump");
 
-	rv = read(fd, buf, sizeof(buf));
-	if (rv <= 0)
-		return rv;
+	rv = write(fd, outbuf, sizeof(outbuf));
+	if (rv != sizeof(outbuf)) {
+		printf("dump write error %d errno %d\n", rv, errno);;
+		return -1;
+	}
 
-	write(STDOUT_FILENO, buf, rv);
+	rv = read(fd, inbuf, sizeof(inbuf));
+	if (rv <= 0)
+		printf("dump read returned %d errno %d\n", rv, errno);
+	else
+		write(STDOUT_FILENO, inbuf, rv);
 
 	close(fd);
 	return 0;




More information about the Cluster-devel mailing list