[exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog exim…

Góra strony
Delete this message
Reply to this message
Autor: Philip Hazel
Data:  
Dla: exim-cvs
Temat: [exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog exim/exim-src/src route.c structs.h exim/exim-src/src/routers accept.c accept.h dnslookup.c dnslookup.h ipliteral.c ipliteral.h iplookup.c ip
ph10 2005/09/12 16:09:55 BST

  Modified files:
    exim-doc/doc-txt     ChangeLog 
    exim-src/src         route.c structs.h 
    exim-src/src/routers accept.c accept.h dnslookup.c dnslookup.h 
                         ipliteral.c ipliteral.h iplookup.c 
                         iplookup.h manualroute.c manualroute.h 
                         queryprogram.c queryprogram.h redirect.c 
                         redirect.h rf_get_errors_address.c 
  Log:
  Disable widen_domains when verifying senders, unless rewrite_headers is
  off.


  Revision  Changes    Path
  1.224     +3 -0      exim/exim-doc/doc-txt/ChangeLog
  1.6       +2 -2      exim/exim-src/src/route.c
  1.3       +1 -1      exim/exim-src/src/routers/accept.c
  1.3       +1 -1      exim/exim-src/src/routers/accept.h
  1.5       +13 -3     exim/exim-src/src/routers/dnslookup.c
  1.3       +1 -1      exim/exim-src/src/routers/dnslookup.h
  1.5       +1 -1      exim/exim-src/src/routers/ipliteral.c
  1.3       +1 -1      exim/exim-src/src/routers/ipliteral.h
  1.4       +1 -1      exim/exim-src/src/routers/iplookup.c
  1.3       +1 -1      exim/exim-src/src/routers/iplookup.h
  1.3       +3 -3      exim/exim-src/src/routers/manualroute.c
  1.3       +1 -1      exim/exim-src/src/routers/manualroute.h
  1.6       +1 -1      exim/exim-src/src/routers/queryprogram.c
  1.3       +1 -1      exim/exim-src/src/routers/queryprogram.h
  1.14      +13 -12    exim/exim-src/src/routers/redirect.c
  1.6       +1 -1      exim/exim-src/src/routers/redirect.h
  1.4       +3 -3      exim/exim-src/src/routers/rf_get_errors_address.c
  1.7       +1 -1      exim/exim-src/src/structs.h


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.223
  retrieving revision 1.224
  diff -u -r1.223 -r1.224
  --- ChangeLog    12 Sep 2005 14:03:42 -0000    1.223
  +++ ChangeLog    12 Sep 2005 15:09:55 -0000    1.224
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.223 2005/09/12 14:03:42 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.224 2005/09/12 15:09:55 ph10 Exp $


Change log file for Exim from version 4.21
-------------------------------------------
@@ -169,6 +169,9 @@

   PH/42 (But a TF fix): In a domain list, Exim incorrectly matched @[] if the IP
         address in a domain literal was a prefix of an interface address.
  +
  +PH/43 (Again a TF fix): In the dnslookup router, do not apply widen_domains
  +      when verifying a sender address, unless rewrite_headers is false.



Exim version 4.52

  Index: route.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/route.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- route.c    15 Mar 2005 11:37:21 -0000    1.5
  +++ route.c    12 Sep 2005 15:09:55 -0000    1.6
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/route.c,v 1.5 2005/03/15 11:37:21 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/route.c,v 1.6 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -1697,8 +1697,8 @@


     HDEBUG(D_route) debug_printf("calling %s router\n", r->name);


  -  yield = (r->info->code)(r, addr, pw, verify != v_none, paddr_local,
  -    paddr_remote, addr_new, addr_succeed);
  +  yield = (r->info->code)(r, addr, pw, verify, paddr_local, paddr_remote,
  +    addr_new, addr_succeed);


     if (yield == FAIL)
       {


  Index: structs.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/structs.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- structs.h    24 May 2005 08:15:02 -0000    1.6
  +++ structs.h    12 Sep 2005 15:09:55 -0000    1.7
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/structs.h,v 1.6 2005/05/24 08:15:02 tom Exp $ */
  +/* $Cambridge: exim/exim-src/src/structs.h,v 1.7 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -307,7 +307,7 @@
       router_instance *,
       struct address_item *,
       struct passwd *,
  -    BOOL,
  +    int,
       struct address_item **,
       struct address_item **,
       struct address_item **,


  Index: accept.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/accept.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- accept.c    4 Jan 2005 10:00:44 -0000    1.2
  +++ accept.c    12 Sep 2005 15:09:55 -0000    1.3
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/accept.c,v 1.2 2005/01/04 10:00:44 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/accept.c,v 1.3 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -81,7 +81,7 @@
     router_instance *rblock,        /* data for this instantiation */
     address_item *addr,             /* address we are working on */
     struct passwd *pw,              /* passwd entry after check_local_user */
  -  BOOL verify,                    /* TRUE when verifying */
  +  int verify,                     /* v_none/v_recipient/v_sender/v_expn */
     address_item **addr_local,      /* add it to this if it's local */
     address_item **addr_remote,     /* add it to this if it's remote */
     address_item **addr_new,        /* put new addresses on here */


  Index: accept.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/accept.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- accept.h    4 Jan 2005 10:00:44 -0000    1.2
  +++ accept.h    12 Sep 2005 15:09:55 -0000    1.3
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/accept.h,v 1.2 2005/01/04 10:00:44 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/accept.h,v 1.3 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -25,7 +25,7 @@
   /* The main and initialization entry points for the router */


   extern int accept_router_entry(router_instance *, address_item *,
  -  struct passwd *, BOOL, address_item **, address_item **,
  +  struct passwd *, int, address_item **, address_item **,
     address_item **, address_item **);


extern void accept_router_init(router_instance *);

  Index: dnslookup.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/dnslookup.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- dnslookup.c    17 Jun 2005 14:20:48 -0000    1.4
  +++ dnslookup.c    12 Sep 2005 15:09:55 -0000    1.5
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/dnslookup.c,v 1.4 2005/06/17 14:20:48 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/dnslookup.c,v 1.5 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -128,7 +128,7 @@
     router_instance *rblock,        /* data for this instantiation */
     address_item *addr,             /* address we are working on */
     struct passwd *pw,              /* passwd entry after check_local_user */
  -  BOOL verify,                    /* TRUE when verifying */
  +  int verify,                     /* v_none/v_recipient/v_sender/v_expn */
     address_item **addr_local,      /* add it to this if it's local */
     address_item **addr_remote,     /* add it to this if it's remote */
     address_item **addr_new,        /* put new addresses on here */
  @@ -177,9 +177,19 @@
   be something in the "ch" toplevel domain, but it also might be xxx.ch.xyz.com.
   The choice of pre- or post-widening affects which takes precedence. If ever
   somebody comes up with some kind of requirement for pre-widening, presumably
  -with some conditions under which it is done, it can be selected here. */
  +with some conditions under which it is done, it can be selected here.


  -if (ob->widen_domains != NULL)
  +The rewrite_headers option works only when routing an address at transport
  +time, because the alterations to the headers are not persistent so must be
  +worked out immediately before they are used. Sender addresses are routed for
  +verification purposes, but never at transport time, so any header changes that
  +you might expect as a result of sender domain widening do not occur. Therefore
  +we do not perform widening when verifying sender addresses; however, widening
  +sender addresses is OK if we do not have to rewrite the headers. The
  +suppression of widening for sender addresses is silent because it is the normal
  +desirable behaviour. */
  +
  +if (ob->widen_domains != NULL && (verify != v_sender || !ob->rewrite_headers))
     {
     listptr = ob->widen_domains;
     widen = string_nextinlist(&listptr, &widen_sep, widen_buffer,


  Index: dnslookup.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/dnslookup.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- dnslookup.h    4 Jan 2005 10:00:44 -0000    1.2
  +++ dnslookup.h    12 Sep 2005 15:09:55 -0000    1.3
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/dnslookup.h,v 1.2 2005/01/04 10:00:44 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/dnslookup.h,v 1.3 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -33,7 +33,7 @@
   /* The main and initialization entry points for the router */


   extern int dnslookup_router_entry(router_instance *, address_item *,
  -  struct passwd *, BOOL, address_item **, address_item **,
  +  struct passwd *, int, address_item **, address_item **,
     address_item **, address_item **);


extern void dnslookup_router_init(router_instance *);

  Index: ipliteral.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/ipliteral.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ipliteral.c    11 Jan 2005 15:51:03 -0000    1.4
  +++ ipliteral.c    12 Sep 2005 15:09:55 -0000    1.5
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/ipliteral.c,v 1.4 2005/01/11 15:51:03 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/ipliteral.c,v 1.5 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -90,7 +90,7 @@
     router_instance *rblock,        /* data for this instantiation */
     address_item *addr,             /* address we are working on */
     struct passwd *pw,              /* passwd entry after check_local_user */
  -  BOOL verify,                    /* TRUE when verifying */
  +  int verify,                     /* v_none/v_recipient/v_sender/v_expn */
     address_item **addr_local,      /* add it to this if it's local */
     address_item **addr_remote,     /* add it to this if it's remote */
     address_item **addr_new,        /* put new addresses on here */


  Index: ipliteral.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/ipliteral.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ipliteral.h    4 Jan 2005 10:00:44 -0000    1.2
  +++ ipliteral.h    12 Sep 2005 15:09:55 -0000    1.3
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/ipliteral.h,v 1.2 2005/01/04 10:00:44 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/ipliteral.h,v 1.3 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -28,7 +28,7 @@
   /* The main and initialization entry points for the router */


   extern int ipliteral_router_entry(router_instance *, address_item *,
  -  struct passwd *, BOOL, address_item **, address_item **,
  +  struct passwd *, int, address_item **, address_item **,
     address_item **, address_item **);


extern void ipliteral_router_init(router_instance *);

  Index: iplookup.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/iplookup.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- iplookup.c    27 Jun 2005 14:29:44 -0000    1.3
  +++ iplookup.c    12 Sep 2005 15:09:55 -0000    1.4
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/iplookup.c,v 1.3 2005/06/27 14:29:44 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/iplookup.c,v 1.4 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -137,7 +137,7 @@
     router_instance *rblock,        /* data for this instantiation */
     address_item *addr,             /* address we are working on */
     struct passwd *pw,              /* passwd entry after check_local_user */
  -  BOOL verify,                    /* TRUE when verifying */
  +  int verify,                     /* v_none/v_recipient/v_sender/v_expn */
     address_item **addr_local,      /* add it to this if it's local */
     address_item **addr_remote,     /* add it to this if it's remote */
     address_item **addr_new,        /* put new addresses on here */


  Index: iplookup.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/iplookup.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- iplookup.h    4 Jan 2005 10:00:44 -0000    1.2
  +++ iplookup.h    12 Sep 2005 15:09:55 -0000    1.3
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/iplookup.h,v 1.2 2005/01/04 10:00:44 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/iplookup.h,v 1.3 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -35,7 +35,7 @@
   /* The main and initialization entry points for the router */


   extern int iplookup_router_entry(router_instance *, address_item *,
  -  struct passwd *, BOOL, address_item **, address_item **,
  +  struct passwd *, int, address_item **, address_item **,
     address_item **, address_item **);


extern void iplookup_router_init(router_instance *);

  Index: manualroute.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/manualroute.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- manualroute.c    4 Jan 2005 10:00:44 -0000    1.2
  +++ manualroute.c    12 Sep 2005 15:09:55 -0000    1.3
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/manualroute.c,v 1.2 2005/01/04 10:00:44 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/manualroute.c,v 1.3 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -191,7 +191,7 @@
     router_instance *rblock,        /* data for this instantiation */
     address_item *addr,             /* address we are working on */
     struct passwd *pw,              /* passwd entry after check_local_user */
  -  BOOL verify,                    /* TRUE when verifying */
  +  int verify,                     /* v_none/v_recipient/v_sender/v_expn */
     address_item **addr_local,      /* add it to this if it's local */
     address_item **addr_remote,     /* add it to this if it's remote */
     address_item **addr_new,        /* put new addresses on here */
  @@ -386,7 +386,7 @@


   if (hostlist[0] == 0)
     {
  -  if (verify) goto ROUTED;
  +  if (verify != v_none) goto ROUTED;
     addr->message = string_sprintf("error in %s router: no host(s) specified "
       "for domain %s", rblock->name, domain);
     log_write(0, LOG_MAIN, "%s", addr->message);
  @@ -405,7 +405,7 @@
   defined for these hosts. It will be a remote one, as a local transport is
   dealt with above. However, we don't need one if verifying only. */


  -if (transport == NULL && !verify)
  +if (transport == NULL && verify == v_none)
       {
       log_write(0, LOG_MAIN, "Error in %s router: no transport defined",
         rblock->name);


  Index: manualroute.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/manualroute.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- manualroute.h    4 Jan 2005 10:00:44 -0000    1.2
  +++ manualroute.h    12 Sep 2005 15:09:55 -0000    1.3
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/manualroute.h,v 1.2 2005/01/04 10:00:44 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/manualroute.h,v 1.3 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -31,7 +31,7 @@
   /* The main and initialization entry points for the router */


   extern int manualroute_router_entry(router_instance *, address_item *,
  -  struct passwd *, BOOL, address_item **, address_item **,
  +  struct passwd *, int, address_item **, address_item **,
     address_item **, address_item **);


extern void manualroute_router_init(router_instance *);

  Index: queryprogram.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/queryprogram.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- queryprogram.c    27 Jun 2005 14:29:44 -0000    1.5
  +++ queryprogram.c    12 Sep 2005 15:09:55 -0000    1.6
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/queryprogram.c,v 1.5 2005/06/27 14:29:44 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/queryprogram.c,v 1.6 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -181,7 +181,7 @@
     router_instance *rblock,        /* data for this instantiation */
     address_item *addr,             /* address we are working on */
     struct passwd *pw,              /* passwd entry after check_local_user */
  -  BOOL verify,                    /* TRUE when verifying */
  +  int verify,                     /* v_none/v_recipient/v_sender/v_expn */
     address_item **addr_local,      /* add it to this if it's local */
     address_item **addr_remote,     /* add it to this if it's remote */
     address_item **addr_new,        /* put new addresses on here */


  Index: queryprogram.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/queryprogram.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- queryprogram.h    4 Jan 2005 10:00:44 -0000    1.2
  +++ queryprogram.h    12 Sep 2005 15:09:55 -0000    1.3
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/queryprogram.h,v 1.2 2005/01/04 10:00:44 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/queryprogram.h,v 1.3 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -34,7 +34,7 @@
   /* The main and initialization entry points for the router */


   extern int queryprogram_router_entry(router_instance *, address_item *,
  -  struct passwd *, BOOL, address_item **, address_item **,
  +  struct passwd *, int, address_item **, address_item **,
     address_item **, address_item **);


extern void queryprogram_router_init(router_instance *);

  Index: redirect.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/redirect.c,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- redirect.c    27 Jun 2005 15:11:04 -0000    1.13
  +++ redirect.c    12 Sep 2005 15:09:55 -0000    1.14
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/redirect.c,v 1.13 2005/06/27 15:11:04 tom Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/redirect.c,v 1.14 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -258,7 +258,7 @@
   Arguments:
     rblock               the router control block
     addr                 the address being routed
  -  verify               true if verifying
  +  verify               v_none/v_recipient/v_sender/v_expn
     addr_prop            point to the propagated block, which is where the
                            new values are to be placed


@@ -268,7 +268,7 @@

   static int
   sort_errors_and_headers(router_instance *rblock, address_item *addr,
  -  BOOL verify, address_item_propagated *addr_prop)
  +  int verify, address_item_propagated *addr_prop)
   {
   int frc = rf_get_errors_address(addr, rblock, verify,
     &(addr_prop->errors_address));
  @@ -499,7 +499,7 @@
     router_instance *rblock,        /* data for this instantiation */
     address_item *addr,             /* address we are working on */
     struct passwd *pw,              /* passwd entry after check_local_user */
  -  BOOL verify,                    /* TRUE when verifying */
  +  int verify,                     /* v_none/v_recipient/v_sender/v_expn */
     address_item **addr_local,      /* add it to this if it's local */
     address_item **addr_remote,     /* add it to this if it's remote */
     address_item **addr_new,        /* put new addresses on here */
  @@ -539,7 +539,7 @@
   /* When verifying and testing addresses, the "logwrite" command in filters
   must be bypassed. */


-if (!verify && !address_test_mode) options |= RDO_REALLOG;
+if (verify == v_none && !address_test_mode) options |= RDO_REALLOG;

/* Sort out the fixed or dynamic uid/gid. This uid is used (a) for reading the
file (and interpreting a filter) and (b) for running the transports for
@@ -618,7 +618,8 @@

         /* Forward SRS */
         /* No point in actually performing SRS if we are just verifying a recipient */
  -      if((srs_action & 1) && !verify && (sender_address ? sender_address[0] != 0 : FALSE))
  +      if((srs_action & 1) && verify == v_none &&
  +         (sender_address ? sender_address[0] != 0 : FALSE))
         {


           srs_orig_sender = sender_address;
  @@ -801,12 +802,12 @@
   if (eblock != NULL)
     {
     if (!moan_skipped_syntax_errors(
  -        rblock->name,                           /* For message content */
  -        eblock,                                 /* Ditto */
  -        (verify || address_test_mode)?
  -          NULL : ob->syntax_errors_to,          /* Who to mail */
  -        generated != NULL,                      /* True if not all failed */
  -        ob->syntax_errors_text))                /* Custom message */
  +        rblock->name,                            /* For message content */
  +        eblock,                                  /* Ditto */
  +        (verify != v_none || address_test_mode)?
  +          NULL : ob->syntax_errors_to,           /* Who to mail */
  +        generated != NULL,                       /* True if not all failed */
  +        ob->syntax_errors_text))                 /* Custom message */
       return DEFER;


     if (filtertype != FILTER_FORWARD || generated == NULL)
  @@ -835,7 +836,7 @@


   if (frc == FF_DELIVERED)
     {
  -  if (generated == NULL && !verify && !address_test_mode)
  +  if (generated == NULL && verify == v_none && !address_test_mode)
       {
       log_write(0, LOG_MAIN, "=> %s <%s> R=%s", discarded, addr->address,
         rblock->name);


  Index: redirect.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/redirect.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- redirect.h    24 May 2005 08:15:02 -0000    1.5
  +++ redirect.h    12 Sep 2005 15:09:55 -0000    1.6
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/redirect.h,v 1.5 2005/05/24 08:15:02 tom Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/redirect.h,v 1.6 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -69,7 +69,7 @@
   /* The main and initialization entry points for the router */


   extern int redirect_router_entry(router_instance *, address_item *,
  -  struct passwd *, BOOL, address_item **, address_item **,
  +  struct passwd *, int, address_item **, address_item **,
     address_item **, address_item **);


extern void redirect_router_init(router_instance *);

  Index: rf_get_errors_address.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/rf_get_errors_address.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- rf_get_errors_address.c    4 Jan 2005 10:00:44 -0000    1.3
  +++ rf_get_errors_address.c    12 Sep 2005 15:09:55 -0000    1.4
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/rf_get_errors_address.c,v 1.3 2005/01/04 10:00:44 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/rf_get_errors_address.c,v 1.4 2005/09/12 15:09:55 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -26,7 +26,7 @@
   Arguments:
     addr         the input address
     rblock       the router instance
  -  verify       TRUE when verifying
  +  verify       v_none / v_recipient / v_sender / v_expn
     errors_to    point the errors address here


   Returns:       OK if no problem
  @@ -36,7 +36,7 @@


int
rf_get_errors_address(address_item *addr, router_instance *rblock,
- BOOL verify, uschar **errors_to)
+ int verify, uschar **errors_to)
{
uschar *s;

@@ -75,7 +75,7 @@
not be a sender address. We also need to save and restore the expansion values
associated with an address. */

  -if (verify)
  +if (verify != v_none)
     {
     *errors_to = s;
     DEBUG(D_route)