This lets us insert a filter program, say a spam checker, between
qmail-smtpd and the mail queue, with the right to refuse a message
before it's accepted by the SMTP server.
trigger.o fmtqfn.o quote.o now.o readsubdir.o qmail.o date822fmt.o \
datetime.a case.a ndelay.a getln.a wait.a seek.a fd.a sig.a open.a \
lock.a stralloc.a alloc.a substdio.a error.a str.a fs.a auto_qmail.o \
trigger.o fmtqfn.o quote.o now.o readsubdir.o qmail.o date822fmt.o \
datetime.a case.a ndelay.a getln.a wait.a seek.a fd.a sig.a open.a \
lock.a stralloc.a alloc.a substdio.a error.a str.a fs.a auto_qmail.o \
./load qmail-send qsutil.o control.o constmap.o newfield.o \
prioq.o trigger.o fmtqfn.o quote.o now.o readsubdir.o \
qmail.o date822fmt.o datetime.a case.a ndelay.a getln.a \
wait.a seek.a fd.a sig.a open.a lock.a stralloc.a alloc.a \
./load qmail-send qsutil.o control.o constmap.o newfield.o \
prioq.o trigger.o fmtqfn.o quote.o now.o readsubdir.o \
qmail.o date822fmt.o datetime.a case.a ndelay.a getln.a \
wait.a seek.a fd.a sig.a open.a lock.a stralloc.a alloc.a \
- substdio.a error.a str.a fs.a auto_qmail.o auto_split.o
+ substdio.a error.a str.a fs.a auto_qmail.o auto_split.o env.a
qmail-send.0: \
qmail-send.8
qmail-send.0: \
qmail-send.8
qmail (1.03-4) non-free; urgency=low
* twiddle build system for missed Debians.
qmail (1.03-4) non-free; urgency=low
* twiddle build system for missed Debians.
+ * indirect qmail-queue via QMAILQUEUE environment variable
-- Mark Wooding <mdw@nsict.org> Wed, 1 Oct 2003 01:16:00 +0100
-- Mark Wooding <mdw@nsict.org> Wed, 1 Oct 2003 01:16:00 +0100
#include "fd.h"
#include "qmail.h"
#include "auto_qmail.h"
#include "fd.h"
#include "qmail.h"
#include "auto_qmail.h"
-static char *binqqargs[2] = { "/usr/sbin/qmail-queue", 0 } ;
+static char *binqqargs[2] = { 0, 0 } ;
+
+static void setup_qqargs()
+{
+ if(!binqqargs[0])
+ binqqargs[0] = env_get("QMAILQUEUE");
+ if(!binqqargs[0])
+ binqqargs[0] = "/usr/sbin/qmail-queue";
+}
int qmail_open(qq)
struct qmail *qq;
int qmail_open(qq)
struct qmail *qq;
if (pipe(pim) == -1) return -1;
if (pipe(pie) == -1) { close(pim[0]); close(pim[1]); return -1; }
if (pipe(pim) == -1) return -1;
if (pipe(pie) == -1) { close(pim[0]); close(pim[1]); return -1; }