19#define WHO "qmail-tcpto"
21void die(n)
int n; { buffer_flush(buffer_1);
_exit(n); }
27 buffer_puts(buffer_1,s);
28 buffer_puts(buffer_1,
": ");
29 buffer_puts(buffer_1,x);
30 buffer_puts(buffer_1,
"\n");
34void die_open() { logmsg(
WHO,112,FATAL,
"unable to open tcpto"); }
35void die_lock() { logmsg(
WHO,112,FATAL,
"unable to lock tcpto"); }
36void die_read() { logmsg(
WHO,112,FATAL,
"unable to read tcpto"); }
40char tmp[FMT_ULONG + IPFMT];
55 if (chdir(
"queue/lock") == -1)
die_chdir();
57 fdlock = open_write(
"tcpto");
59 fd = open_read(
"tcpto");
61 if (lock_ex(fdlock) == -1)
die_lock();
72 for (i = 0; i < r; ++i) {
74 when = (
unsigned long) (
unsigned char) record[11];
75 when = (when << 8) + (
unsigned long) (
unsigned char) record[10];
76 when = (when << 8) + (
unsigned long) (
unsigned char) record[9];
77 when = (when << 8) + (
unsigned long) (
unsigned char) record[8];
79 if (record[0] == AF_INET) {
80 byte_copy(&
ip4,4,record + 16);
81 buffer_put(buffer_1,
tmp,ip4_fmt(
tmp,
ip4));
83 byte_copy(&
ip6,16,record + 16);
84 buffer_put(buffer_1,
tmp,ip6_fmt(
tmp,
ip6));
86 buffer_puts(buffer_1,
" timed out ");
87 buffer_put(buffer_1,
tmp,fmt_ulong(
tmp,(
unsigned long) (start - when)));
88 buffer_puts(buffer_1,
" seconds ago; # recent timeouts: ");
89 buffer_put(buffer_1,
tmp,fmt_ulong(
tmp,(
unsigned long) (
unsigned char) record[4]));
90 buffer_puts(buffer_1,
"\n");
char tcpto_buf[BUFSIZE_LINE]
char tmp[FMT_ULONG+IPFMT]