[Cluster-devel] cluster/group/tool main.c
rpeterso at sourceware.org
rpeterso at sourceware.org
Thu Nov 9 16:22:35 UTC 2006
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: rpeterso at sourceware.org 2006-11-09 16:22:34
Modified files:
group/tool : main.c
Log message:
This is the fix for Bugzilla Bug 214524: group_tool dump can give
short output.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/tool/main.c.diff?cvsroot=cluster&r1=1.22&r2=1.23
--- cluster/group/tool/main.c 2006/11/09 15:47:29 1.22
+++ cluster/group/tool/main.c 2006/11/09 16:22:34 1.23
@@ -343,11 +343,17 @@
return -1;
}
- 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);
+ while (1) {
+ rv = read(fd, inbuf, sizeof(inbuf));
+ fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) | O_NONBLOCK);
+ if (rv <= 0) {
+ if (errno != EAGAIN)
+ printf("dump read returned %d errno %d\n", rv, errno);
+ break;
+ }
+ else
+ write(STDOUT_FILENO, inbuf, rv);
+ }
close(fd);
return 0;
@@ -370,11 +376,17 @@
return -1;
}
- 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);
+ while (1) {
+ rv = read(fd, inbuf, sizeof(inbuf));
+ fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) | O_NONBLOCK);
+ if (rv <= 0) {
+ if (errno != EAGAIN)
+ printf("dump read returned %d errno %d\n", rv, errno);
+ break;
+ }
+ else
+ write(STDOUT_FILENO, inbuf, rv);
+ }
close(fd);
return 0;
More information about the Cluster-devel
mailing list