chiark / gitweb /
Backup: Add daft_sleep calls to snapshot code.
[chiark-utils.git] / cprogs / cgi-fcgi-interp.c
index 2c157d218033a372c6e53c144cb091e29952ed18..7a5a5db6a3a6c3eb17d37749b1c2b65de63a06a0 100644 (file)
@@ -789,12 +789,19 @@ static void errpipe_readable(void) {
   static char buf[1024];
   static int pending;
 
+  /* %: does not contain newlines
+   * _: empty (garbage)
+   */ 
+
+  /*           %%%%%%%%%%%__________________ */
+  /*                      ^ pending          */
+
   for (;;) {
     int avail = sizeof(buf) - pending;
     ssize_t got = read(errpipe, buf+pending, avail);
     if (got==-1) {
       if (errno==EINTR) continue;
-      else if (errno==EWOULDBLOCK || errno==EAGAIN) /*ok*/;
+      else if (errno==EWOULDBLOCK || errno==EAGAIN) return;
       else diee("(stage2) errpipe read");
       got = 0;
     } else if (got==0) {
@@ -819,6 +826,7 @@ static void errpipe_readable(void) {
       }
       syslog(LOG_ERR,"stderr: %.*s", printupto-eaten, buf+eaten);
       eaten += eat;
+      scanned = eaten;
     }
     pending -= eaten;
     memmove(buf, buf+eaten, pending);