Fix getting non-TLS QUIT in FIN segment
[users/heiko/exim.git] / test / src / fd.c
index 4616f6fd1781f4538e8dd39962489dfeb6c879cd..fc3a544564972209a932667a10997c799268e90b 100644 (file)
@@ -1,5 +1,3 @@
-/* $Cambridge: exim/test/src/fd.c,v 1.1 2006/02/06 16:24:05 ph10 Exp $ */
-
 /* A program to check on open file descriptors. There are some weird options
 for running it in Exim testing. If -q is given, make output suitable for
 queryprogram. If -f is given, copy the input as for a transport filter. If -s
 /* A program to check on open file descriptors. There are some weird options
 for running it in Exim testing. If -q is given, make output suitable for
 queryprogram. If -f is given, copy the input as for a transport filter. If -s
@@ -52,7 +50,8 @@ if (filter)
   {
   int len;
   while ((len = read(0, buffer, sizeof(buffer))) > 0)
   {
   int len;
   while ((len = read(0, buffer, sizeof(buffer))) > 0)
-    write(1, buffer, len);
+    if (write(1, buffer, len) < 0)
+       exit(1);
   }
 
 p += sprintf(p, "max fd = %d\n", (int)mac_maxfd);
   }
 
 p += sprintf(p, "max fd = %d\n", (int)mac_maxfd);
@@ -66,28 +65,21 @@ for (fd = 0; fd <= mac_maxfd; fd++)
     p += sprintf(p, "%3d opt=%d status=%X ", fd, options, status);
     switch(status & 3)
       {
     p += sprintf(p, "%3d opt=%d status=%X ", fd, options, status);
     switch(status & 3)
       {
-      case 0: p += sprintf(p, "RDONLY");
-      break;
-      case 1: p += sprintf(p, "WRONLY");
-      break;
-      case 2: p += sprintf(p, "RDWR");
-      break;
+      case O_RDONLY: p += sprintf(p, "RDONLY"); break;
+      case O_WRONLY: p += sprintf(p, "WRONLY"); break;
+      case O_RDWR: p += sprintf(p, "RDWR"); break;
       }
     if (isatty(fd)) p += sprintf(p, " TTY");
     if ((status & 8) != 0) p += sprintf(p, " APPEND");
 
     if (use_stat && fstat(fd, &statbuf) >= 0)
       }
     if (isatty(fd)) p += sprintf(p, " TTY");
     if ((status & 8) != 0) p += sprintf(p, " APPEND");
 
     if (use_stat && fstat(fd, &statbuf) >= 0)
-      {
       p += sprintf(p, " mode=%o uid=%d size=%d", (int)statbuf.st_mode,
         (int)statbuf.st_uid, (int)statbuf.st_size);
       p += sprintf(p, " mode=%o uid=%d size=%d", (int)statbuf.st_mode,
         (int)statbuf.st_uid, (int)statbuf.st_size);
-      }
 
     p += sprintf(p, "\n");
     }
   else if (errno != EBADF)
 
     p += sprintf(p, "\n");
     }
   else if (errno != EBADF)
-    {
     p += sprintf(p, "%3d errno=%d %s\n", fd, errno, strerror(errno));
     p += sprintf(p, "%3d errno=%d %s\n", fd, errno, strerror(errno));
-    }
   }
 
 if (qpgm)
   }
 
 if (qpgm)