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

Página Inicial
Delete this message
Reply to this message
Autor: Philip Hazel
Data:  
Para: exim-cvs
Assunto: [exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog exim/exim-src/src/lookups ldap.c
ph10 2005/01/13 11:12:12 GMT

  Modified files:
    exim-doc/doc-txt     ChangeLog 
    exim-src/src/lookups ldap.c 
  Log:
  The patch to support LDAP_SEARCH_RES_REFERENCE was unconditional; it
  seems that some versions of LDAP don't have this (e.g. OpenLDAP v1, which is
  of course pretty old, but some people still use it). I've modified the
  patch to exclude the functionality when the macro isn't defined.


  Revision  Changes    Path
  1.69      +4 -0      exim/exim-doc/doc-txt/ChangeLog
  1.8       +13 -4     exim/exim-src/src/lookups/ldap.c


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.68
  retrieving revision 1.69
  diff -u -r1.68 -r1.69
  --- ChangeLog    12 Jan 2005 15:41:27 -0000    1.68
  +++ ChangeLog    13 Jan 2005 11:12:12 -0000    1.69
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.68 2005/01/12 15:41:27 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.69 2005/01/13 11:12:12 ph10 Exp $


   Change log file for Exim from version 4.21
   -------------------------------------------
  @@ -233,6 +233,10 @@
         of ldap_search was unknown to exim because of LDAP_RES_SEARCH_REFERENCE.
         But simultaneously result of request was absolutely normal ldap result,
         so I produce this patch..."
  +
  +    Later: it seems that not all versions of LDAP support LDAP_RES_SEARCH_
  +    REFERENCE, so I have modified the code to exclude the patch when that macro
  +    is not defined.


   55. Some experimental protocols are using DNS PTR records for new purposes. The
       keys for these records are domain names, not reversed IP addresses. The


  Index: ldap.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/lookups/ldap.c,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ldap.c    4 Jan 2005 10:00:44 -0000    1.7
  +++ ldap.c    13 Jan 2005 11:12:12 -0000    1.8
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/lookups/ldap.c,v 1.7 2005/01/04 10:00:44 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/lookups/ldap.c,v 1.8 2005/01/13 11:12:12 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -789,9 +789,15 @@


   /* A return code that isn't -1 doesn't necessarily mean there were no problems
   with the search. The message must be an LDAP_RES_SEARCH_RESULT or 
  -LDAP_RES_SEARCH_REFERENCE or else it's something we can't handle. */
  -
  -if (rc != LDAP_RES_SEARCH_RESULT && rc != LDAP_RES_SEARCH_REFERENCE)
  +LDAP_RES_SEARCH_REFERENCE or else it's something we can't handle. Some versions 
  +of LDAP do not define LDAP_RES_SEARCH_REFERENCE (LDAP v1 is one, it seems). So 
  +we don't provide that functionality when we can't. :-) */
  +
  +if (rc != LDAP_RES_SEARCH_RESULT 
  +#ifdef LDAP_RES_SEARCH_REFERENCE
  +    && rc != LDAP_RES_SEARCH_REFERENCE
  +#endif     
  +   )
     {
     *errmsg = string_sprintf("ldap_result returned unexpected code %d", rc);
     goto RETURN_ERROR;
  @@ -806,8 +812,11 @@
       CSS &error2, NULL, NULL, 0);
     DEBUG(D_lookup) debug_printf("ldap_parse_result: %d\n", ldap_parse_rc);
     if (ldap_parse_rc < 0 && 
  -      (ldap_parse_rc != LDAP_NO_RESULTS_RETURNED ||
  -       ldap_rc != LDAP_RES_SEARCH_REFERENCE))
  +      (ldap_parse_rc != LDAP_NO_RESULTS_RETURNED
  +      #ifdef LDAP_RES_SEARCH_REFERENCE 
  +      || ldap_rc != LDAP_RES_SEARCH_REFERENCE
  +      #endif  
  +     ))
       {
       *errmsg = string_sprintf("ldap_parse_result failed %d", ldap_parse_rc);
       goto RETURN_ERROR;