chiark / gitweb /
Merge branches 'idx/verh' and 'idx/qmqpc'
[qmail] / slurpclose.c
index 27be0eadd347ff078fc41a02637df3f0bf671f22..2fcef152720e292106160a3fc3090a3928c3641e 100644 (file)
@@ -1,6 +1,7 @@
 #include "stralloc.h"
 #include "readwrite.h"
 #include "slurpclose.h"
+#include "error.h"
 
 int slurpclose(fd,sa,bufsize)
 int fd;
@@ -11,6 +12,7 @@ int bufsize;
   for (;;) {
     if (!stralloc_readyplus(sa,bufsize)) { close(fd); return -1; }
     r = read(fd,sa->s + sa->len,bufsize);
+    if (r == -1) if (errno == error_intr) continue;
     if (r <= 0) { close(fd); return r; }
     sa->len += r;
   }