diff options
Diffstat (limited to 'sqmail-4.3.07/src/forward.c')
-rw-r--r-- | sqmail-4.3.07/src/forward.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/sqmail-4.3.07/src/forward.c b/sqmail-4.3.07/src/forward.c deleted file mode 100644 index 7421d8b..0000000 --- a/sqmail-4.3.07/src/forward.c +++ /dev/null @@ -1,58 +0,0 @@ -#include <unistd.h> -#include "sig.h" -#include "exit.h" -#include "env.h" -#include "qmail.h" -#include "logmsg.h" -#include "buffer.h" -#include "fmt.h" - -#define WHO "forward" - -void die_nomem() { logmsg(WHO,111,FATAL,"out of memory"); } - -struct qmail qqt; - -ssize_t mywrite(int fd, char *buf, int len) -{ - qmail_put(&qqt,buf,len); - return len; -} - -char inbuf[BUFSIZE_LINE]; -buffer bi = BUFFER_INIT(read,0,inbuf,sizeof(inbuf)); -char outbuf[BUFSIZE_LINE]; -buffer bo = BUFFER_INIT(mywrite,-1,outbuf,sizeof(outbuf)); - -char num[FMT_ULONG]; - -int main(int argc, char **argv) -{ - char *sender; - char *dtline; - char *qqx; - - sig_pipeignore(); - - sender = env_get("NEWSENDER"); - if (!sender) - logmsg(WHO,100,FATAL,"NEWSENDER not set"); - dtline = env_get("DTLINE"); - if (!dtline) - logmsg(WHO,100,FATAL,"DTLINE not set"); - - if (qmail_open(&qqt) == -1) - logmsg(WHO,111,FATAL,"unable to fork: "); - qmail_puts(&qqt,dtline); - if (buffer_copy(&bo,&bi) != 0) - logmsg(WHO,111,FATAL,"unable to read message: "); - buffer_flush(&bo); - - num[fmt_ulong(num,qmail_qp(&qqt))] = 0; - - qmail_from(&qqt,sender); - while (*++argv) qmail_to(&qqt,*argv); - qqx = qmail_close(&qqt); - if (*qqx) logmsg(WHO,*qqx == 'D' ? 100 : 111,FATAL,qqx + 1); - logmsg(WHO,0,LOG,B("qp ",num)); -} |