9d838e69305f33e293171412a043cffc14797cbd
9 void initialize(argc
,argv
)
18 void report(ss
,wstat
,s
,len
)
29 if (wait_crashed(wstat
))
30 { substdio_puts(ss
,"Zqmail-remote crashed.\n"); return; }
31 switch(wait_exitcode(wstat
))
34 case 111: substdio_puts(ss
,"ZUnable to run qmail-remote.\n"); return;
35 default: substdio_puts(ss
,"DUnable to run qmail-remote.\n"); return;
38 { substdio_puts(ss
,"Zqmail-remote produced no output.\n"); return; }
42 for (k
= 0;k
< len
;++k
)
45 if (s
[j
] == 'K') { result
= 1; break; }
46 if (s
[j
] == 'Z') { result
= 0; break; }
47 if (s
[j
] == 'D') break;
54 case 's': orr
= 0; break;
60 case 1: substdio_put(ss
,"K",1); break;
61 case 0: substdio_put(ss
,"Z",1); break;
62 case -1: substdio_put(ss
,"D",1); break;
68 substdio_puts(ss
,s
+ 1);
73 case 'Z': case 'D': case 'K':
74 substdio_puts(ss
,s
+ k
+ 1);
80 int spawn(fdmess
,fdout
,s
,r
,at
)
81 int fdmess
; int fdout
;
82 char *s
; char *r
; int at
;
87 args
[0] = "qmail-remote";
95 if (fd_move(0,fdmess
) == -1) _exit(111);
96 if (fd_move(1,fdout
) == -1) _exit(111);
97 if (fd_copy(2,1) == -1) _exit(111);
99 if (error_temp(errno
)) _exit(111);