Well, which qmail-queue-custom-error.patch were you working from originally?  
I used the one that came with Simscan, and added the changes in manually.

I'm not quite sure I understand the nature of the problem.

--Ed

On Sunday 03 July 2005 01:26, Sameer N Ingole wrote:
> Ed Cates wrote:
> >On Saturday 02 July 2005 23:23, Sameer N Ingole wrote:
> >>Ed Cates wrote:
> >>>Sameer,
> >>>
> >>>I've taken the qmail-queue-custom-error patch and modified it so it
> >>>patches cleanly and compiles against qmail-ldap-1.03-20050401a with no
> >>>other patches installed.
> >>>
> >>>Note I didn't say "runs."  I haven't tried to run it yet.  But it at
> >>> least patches and compiles. ;-)
> >>>
> >>>Please let me know if this works with simscan.
> >>>
> >>>--Ed
> >>
> >>I patched qmail-ldap-1.03-20050401a manually with
> >>qmail-queue-custom-error patch
> >>and *it works fine* with simscan. I woud rather preffer to check the
> >>diff (your patch)
> >>against my manually patched code with qmail-ldap-1.03-20050401a code.
> >
> >I'll bet our efforts are remarkably similar.  That is all that I did
> > (found
>
> So it seems but..
> there is some difference with your diff and my diff.
> This is what I did.
> 1. I patched qmail-ldap-1.03-20050401a with qmail-queue-custom-error.patch
> 2. I patched qmail-ldap-1.03-20050401a manually with rejected hunks of
> qmail-queue-custom-error.patch seperately again in a different directory.
> 3. diff'ed the files using command
>  diff -b -u  tmp/qmail-1.03/qmail.c qmail-1.03_0/qmail.c
> where
> tmp/qmail-1.03/qmail.c is from point 1 above and
> qmail-1.03_0/qmail.c is from point 2 above
>
> My diff output agrees with your diff output till first two hunks, but
> third hunk is
> a difference between your diff and my diff. What went wrong?
> here is my diff output...
>
> -------8<------
>
> --- tmp/qmail-1.03/qmail.c      2005-07-03 11:31:17.134903720 +0530
> +++ qmail-1.03_0/qmail.c        2005-06-30 18:07:07.557029720 +0530
> @@ -32,6 +32,7 @@
>  {
>    int pim[2];
>    int pie[2];
> +  int pierr[2];
>
>  #ifdef ALTQUEUE
>    setup_qqargs();
> @@ -39,17 +40,26 @@
>
>    if (pipe(pim) == -1) return -1;
>    if (pipe(pie) == -1) { close(pim[0]); close(pim[1]); return -1; }
> +  if (pipe(pierr) == -1) {
> +    close(pim[0]); close(pim[1]);
> +    close(pie[0]); close(pie[1]);
> +    close(pierr[0]); close(pierr[1]);
> +    return -1;
> +  }
>
>    switch(qq->pid = vfork()) {
>      case -1:
> +      close(pierr[0]); close(pierr[1]);
>        close(pim[0]); close(pim[1]);
>        close(pie[0]); close(pie[1]);
>        return -1;
>      case 0:
>        close(pim[1]);
>        close(pie[1]);
> +      close(pierr[0]); /* we want to receive data */
>        if (fd_move(0,pim[0]) == -1) _exit(120);
>        if (fd_move(1,pie[0]) == -1) _exit(120);
> +      if (fd_move(4,pierr[1]) == -1) _exit(120);
>        if (chdir(auto_qmail) == -1) _exit(61);
>        execv(*binqqargs,binqqargs);
>        _exit(120);
> @@ -57,6 +67,7 @@
>
>    qq->fdm = pim[1]; close(pim[0]);
>    qq->fde = pie[1]; close(pie[0]);
> +  qq->fderr = pierr[0]; close(pierr[1]);
>    substdio_fdbuf(&qq->ss,subwrite,qq->fdm,qq->buf,sizeof(qq->buf));
>    qq->flagerr = 0;
>    return 0;
>
> ------->8------
>
> >the code hunks, added the lines from the custom-error patch), then diff'ed
> > it against the original files.
> >
> >Glad to know it works with Simscan!  Thanks!
> >
> >>The original qmail-queue-custom-error patch fails with 2 rejected hunks
> >>in file qmail.c
> >>of qmail-ldap-1.03-20050401a source.
> >>
> >>>On Thursday 30 June 2005 06:53, you wrote:
> >>>>Hi All,
> >>>>I am wondering if there is some functionality like one provided by
> >>>>qmail-queue-custom-error.patch
> >>>>in qmail-ldap. Or do I have to use this patch?
> >>>>
> >>>>I have qmail-ldap running patched with qmail-ldap-1.03-20050401a.patch
> >>>>
> >>>>I want to send some custom error messages and using simscan, clamav and
> >>>>spamassassin.
> >>>>I tried to pach the qmail-ldap source with this patch but it failed.
> >>>>
> >>>>Thank you.
> >>>>
> >>>>
> >>>>-----------------------------------------------------------------------
> >>>>-
> >>>>
> >>>>--- qmail.c.old 2005-07-02 11:11:29.000000000 -0500
> >>>>+++ qmail.c       2005-07-02 11:11:34.000000000 -0500
> >>>>@@ -32,6 +32,7 @@
> >>>>{
> >>>>  int pim[2];
> >>>>  int pie[2];
> >>>>+  int pierr[2];
> >>>>
> >>>>#ifdef ALTQUEUE
> >>>>  setup_qqargs();
> >>>>@@ -39,17 +40,26 @@
> >>>>
> >>>>  if (pipe(pim) == -1) return -1;
> >>>>  if (pipe(pie) == -1) { close(pim[0]); close(pim[1]); return -1; }
> >>>>+  if (pipe(pierr) == -1) {
> >>>>+    close(pim[0]); close(pim[1]);
> >>>>+    close(pie[0]); close(pie[1]);
> >>>>+    close(pierr[0]); close(pierr[1]);
> >>>>+    return -1;
> >>>>+  }
> >>>>
> >>>>  switch(qq->pid = vfork()) {
> >>>>    case -1:
> >>>>+      close(pierr[0]); close(pierr[1]);
> >>>>      close(pim[0]); close(pim[1]);
> >>>>      close(pie[0]); close(pie[1]);
> >>>>      return -1;
> >>>>    case 0:
> >>>>      close(pim[1]);
> >>>>      close(pie[1]);
> >>>>+      close(pierr[0]); /* we want to receive data */
> >>>>      if (fd_move(0,pim[0]) == -1) _exit(120);
> >>>>      if (fd_move(1,pie[0]) == -1) _exit(120);
> >>>>+      if (fd_move(4,pierr[1]) == -1) _exit(120);
> >>>>      if (chdir(auto_qmail) == -1) _exit(61);
> >>>>      execv(*binqqargs,binqqargs);
> >>>>      _exit(120);
> >>>>@@ -57,6 +67,7 @@
> >>>>
> >>>>  qq->fdm = pim[1]; close(pim[0]);
> >>>>  qq->fde = pie[1]; close(pie[0]);
> >>>>+  qq->fderr = pierr[0]; close(pierr[1]);
> >>>>  substdio_fdbuf(&qq->ss,subwrite,qq->fdm,qq->buf,sizeof(qq->buf));
> >>>>  qq->flagerr = 0;
> >>>>  return 0;
> >>>>@@ -141,10 +152,21 @@
> >>>>{
> >>>>  int wstat;
> >>>>  int exitcode;
> >>>>+  int match;
> >>>>+  char ch;
> >>>>+  static char errstr[256];
> >>>>+  int len = 0;
> >>>>
> >>>>  qmail_put(qq,"",1);
> >>>>  if (!qq->flagerr) if (substdio_flush(&qq->ss) == -1) qq->flagerr = 1;
> >>>>  close(qq->fde);
> >>>>+  substdio_fdbuf(&qq->ss,read,qq->fderr,qq->buf,sizeof(qq->buf));
> >>>>+  while( substdio_bget(&qq->ss,&ch,1) && len < 255){
> >>>>+    errstr[len]=ch;
> >>>>+    len++;
> >>>>+  }
> >>>>+  if (len > 0) errstr[len]='\0'; /* add str-term */
> >>>>+  close(qq->fderr);
> >>>>
> >>>>  if ((unsigned long)wait_pid(&wstat,qq->pid) != qq->pid)
> >>>>    return "Zqq waitpid surprise (#4.3.0)";
> >>>>--- qmail.h.old   2005-07-02 11:10:19.000000000 -0500
> >>>>+++ qmail.h       2005-07-02 11:10:00.000000000 -0500
> >>>>@@ -8,6 +8,7 @@
> >>>>  unsigned long pid;
> >>>>  int fdm;
> >>>>  int fde;
> >>>>+  int fderr;
> >>>>  substdio ss;
> >>>>  char buf[1024];
> >>>>} ;

Reply via email to