[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Cvs-cvs] ccvs/src ChangeLog server.c [cvs1-11-x-branch]
From: |
Derek Robert Price |
Subject: |
[Cvs-cvs] ccvs/src ChangeLog server.c [cvs1-11-x-branch] |
Date: |
Mon, 30 Jan 2006 23:32:24 +0000 |
CVSROOT: /cvsroot/cvs
Module name: ccvs
Branch: cvs1-11-x-branch
Changes by: Derek Robert Price <address@hidden> 06/01/30 23:32:23
Modified files:
src : ChangeLog server.c
Log message:
* server.c (do_cvs_command): Set flow control pipe to blocking mode
before waiting for it to close.
(set_block_fd): New function.
(Original patch from Garrett Rooney <address@hidden>.)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/ChangeLog.diff?only_with_tag=cvs1-11-x-branch&tr1=1.2336.2.415&tr2=1.2336.2.416&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/server.c.diff?only_with_tag=cvs1-11-x-branch&tr1=1.284.2.41&tr2=1.284.2.42&r1=text&r2=text
Patches:
Index: ccvs/src/ChangeLog
diff -u ccvs/src/ChangeLog:1.2336.2.415 ccvs/src/ChangeLog:1.2336.2.416
--- ccvs/src/ChangeLog:1.2336.2.415 Fri Jan 13 21:16:12 2006
+++ ccvs/src/ChangeLog Mon Jan 30 23:32:23 2006
@@ -1,3 +1,10 @@
+2006-01-30 Derek Price <address@hidden>
+
+ * server.c (do_cvs_command): Set flow control pipe to blocking mode
+ before waiting for it to close.
+ (set_block_fd): New function.
+ (Original patch from Garrett Rooney <address@hidden>.)
+
2006-01-13 Larry Jones <address@hidden>
* mkmodules.c (config_contents): Change SystemAuth to yes to match
Index: ccvs/src/server.c
diff -u ccvs/src/server.c:1.284.2.41 ccvs/src/server.c:1.284.2.42
--- ccvs/src/server.c:1.284.2.41 Thu Sep 22 18:13:28 2005
+++ ccvs/src/server.c Mon Jan 30 23:32:23 2006
@@ -2711,6 +2711,25 @@
+/*
+ * Set buffer FD to blocking I/O. Returns 0 for success or errno code.
+ */
+int
+set_block_fd (fd)
+ int fd;
+{
+ int flags;
+
+ flags = fcntl (fd, F_GETFL, 0);
+ if (flags < 0)
+ return errno;
+ if (fcntl (fd, F_SETFL, flags & ~O_NONBLOCK) < 0)
+ return errno;
+ return 0;
+}
+
+
+
static void
do_cvs_command (cmd_name, command)
char *cmd_name;
@@ -2934,8 +2953,8 @@
{
char junk;
ssize_t status;
- while ((status = read (flowcontrol_pipe[0], &junk, 1)) > 0
- || (status == -1 && errno == EAGAIN));
+ set_block_fd (flowcontrol_pipe[0]);
+ while ((status = read (flowcontrol_pipe[0], &junk, 1)) > 0);
}
/* FIXME: No point in printing an error message with error(),
* as STDERR is already closed, but perhaps this could be syslogged?
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Cvs-cvs] ccvs/src ChangeLog server.c [cvs1-11-x-branch],
Derek Robert Price <=