1 Common subdirectories: qmail-1.03.orig/qmail-rhinit and qmail-1.03/qmail-rhinit
2 diff -u --new-file qmail-1.03.orig/qmail.c qmail-1.03/qmail.c
3 --- qmail-1.03.orig/qmail.c 2005-07-05 16:03:09.194496536 -0300
4 +++ qmail-1.03/qmail.c 2005-07-05 16:05:23.594392705 -0300
13 if (pipe(pim) == -1) return -1;
14 if (pipe(pie) == -1) { close(pim[0]); close(pim[1]); return -1; }
15 + if (pipe(pierr) == -1) {
16 + close(pim[0]); close(pim[1]);
17 + close(pie[0]); close(pie[1]);
18 + close(pierr[0]); close(pierr[1]);
22 switch(qq->pid = vfork()) {
24 + close(pierr[0]); close(pierr[1]);
25 close(pim[0]); close(pim[1]);
26 close(pie[0]); close(pie[1]);
31 + close(pierr[0]); /* we want to receive data */
32 if (fd_move(0,pim[0]) == -1) _exit(120);
33 if (fd_move(1,pie[0]) == -1) _exit(120);
34 + if (fd_move(4,pierr[1]) == -1) _exit(120);
35 if (chdir(auto_qmail) == -1) _exit(61);
36 execv(*binqqargs,binqqargs);
40 qq->fdm = pim[1]; close(pim[0]);
41 qq->fde = pie[1]; close(pie[0]);
42 + qq->fderr = pierr[0]; close(pierr[1]);
43 substdio_fdbuf(&qq->ss,write,qq->fdm,qq->buf,sizeof(qq->buf));
52 + static char errstr[256];
56 if (!qq->flagerr) if (substdio_flush(&qq->ss) == -1) qq->flagerr = 1;
58 + substdio_fdbuf(&qq->ss,read,qq->fderr,qq->buf,sizeof(qq->buf));
59 + while( substdio_bget(&qq->ss,&ch,1) && len < 255){
63 + if (len > 0) errstr[len]='\0'; /* add str-term */
67 if (wait_pid(&wstat,qq->pid) != qq->pid)
68 return "Zqq waitpid surprise (#4.3.0)";
70 case 81: return "Zqq internal bug (#4.3.0)";
71 case 120: return "Zunable to exec qq (#4.3.0)";
73 + if (exitcode == 82 && len > 2){
76 if ((exitcode >= 11) && (exitcode <= 40))
77 - return "Dqq permanent problem (#5.3.0)";
78 + return "Dqq permanent problem (#5.3.0)";
79 return "Zqq temporary problem (#4.3.0)";
82 diff -u --new-file qmail-1.03.orig/qmail.h qmail-1.03/qmail.h
83 --- qmail-1.03.orig/qmail.h 2005-07-05 16:03:09.172501954 -0300
84 +++ qmail-1.03/qmail.h 2005-07-05 16:03:32.480760932 -0300