summaryrefslogtreecommitdiff
path: root/src/qmail-tcpok.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmail-tcpok.c')
-rw-r--r--src/qmail-tcpok.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/qmail-tcpok.c b/src/qmail-tcpok.c
new file mode 100644
index 0000000..2935f17
--- /dev/null
+++ b/src/qmail-tcpok.c
@@ -0,0 +1,36 @@
+#include "logmsg.h"
+#include "buffer.h"
+#include "lock.h"
+#include "open.h"
+#include <unistd.h>
+#include "auto_qmail.h"
+#include "exit.h"
+
+#define WHO "qmail-tcpok"
+
+char buf[1024]; /* XXX: must match size in tcpto_clean.c, tcpto.c */
+buffer bo;
+
+int main()
+{
+ int fd;
+ int i;
+
+ if (chdir(auto_qmail) == -1)
+ logmsg(WHO,111,FATAL,B("unable to chdir to: ",auto_qmail));
+ if (chdir("queue/lock") == -1)
+ logmsg(WHO,111,FATAL,B("unable to chdir to ",auto_qmail,"/queue/lock: "));
+
+ fd = open_write("tcpto");
+ if (fd == -1)
+ logmsg(WHO,111,FATAL,B("unable to write ",auto_qmail,"/queue/lock/tcpto: "));
+ if (lock_ex(fd) == -1)
+ logmsg(WHO,111,FATAL,B("unable to lock ",auto_qmail,"/queue/lock/tcpto: "));
+
+ buffer_init(&bo,write,fd,buf,sizeof(buf));
+ for (i = 0; i < sizeof(buf); ++i)
+ buffer_put(&bo,"",1);
+ if (buffer_flush(&bo) == -1)
+ logmsg(WHO,111,FATAL,B("unable to clear ",auto_qmail,"/queue/lock/tcpto: "));
+ _exit(0);
+}