|
|
1.1 root 1: #include <stdio.h>
2: #include "mail.h"
3: #include "string.h"
4: #include "dest.h"
5: #include "aux.h"
6: #include "process.h"
7:
8: /*
9: * Run a command to authorize or refuse entry. Return status 0 means
10: * authorize, -1 means refuse.
11: */
12: extern
13: authorize(dp)
14: dest *dp;
15: {
16: process *pp;
17: string *errstr;
18:
19: dp->authorized = 1;
20: pp = proc_start(s_to_c(dp->repl1), (stream *)NULL, (stream *)NULL,
21: outstream(), -1);
22: if (pp == NULL)
23: return;
24: errstr = s_new();
25: while (s_read_line(pp->std[2]->fp, errstr) != NULL)
26: ;
27: if ((dp->pstat = proc_wait(pp)) != 0) {
28: dp->repl2 = errstr;
29: dp->status = d_noforward;
30: } else
31: s_free(errstr);
32: proc_free(pp);
33: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.