cvs-cvs
[Top][All Lists]
Advanced

[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?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]