chiark / gitweb /
Merge branches 'idx/verh' and 'idx/qmqpc'
[qmail] / qmail-tcpok.c
1 #include "strerr.h"
2 #include "substdio.h"
3 #include "lock.h"
4 #include "open.h"
5 #include "readwrite.h"
6 #include "auto_qmail.h"
7 #include "exit.h"
8
9 #define FATAL "qmail-tcpok: fatal: "
10
11 char buf[1024]; /* XXX: must match size in tcpto_clean.c, tcpto.c */
12 substdio ss;
13
14 void main()
15 {
16   int fd;
17   int i;
18
19   if (chdir(auto_qmail) == -1)
20     strerr_die4sys(111,FATAL,"unable to chdir to ",auto_qmail,": ");
21   if (chdir("queue/lock") == -1)
22     strerr_die4sys(111,FATAL,"unable to chdir to ",auto_qmail,"/queue/lock: ");
23
24   fd = open_write("tcpto");
25   if (fd == -1)
26     strerr_die4sys(111,FATAL,"unable to write ",auto_qmail,"/queue/lock/tcpto: ");
27   if (lock_ex(fd) == -1)
28     strerr_die4sys(111,FATAL,"unable to lock ",auto_qmail,"/queue/lock/tcpto: ");
29
30   substdio_fdbuf(&ss,write,fd,buf,sizeof buf);
31   for (i = 0;i < sizeof buf;++i) substdio_put(&ss,"",1);
32   if (substdio_flush(&ss) == -1)
33     strerr_die4sys(111,FATAL,"unable to clear ",auto_qmail,"/queue/lock/tcpto: ");
34   _exit(0);
35 }