ph10 2006/12/19 14:51:34 GMT
Modified files:
exim-doc/doc-txt ChangeLog
exim-src ACKNOWLEDGMENTS
exim-src/src/lookups ldap.c
Log:
Robert Bannocks' patch for an LDAP problem on Solaris LDAP.
Revision Changes Path
1.446 +3 -0 exim/exim-doc/doc-txt/ChangeLog
1.67 +2 -1 exim/exim-src/ACKNOWLEDGMENTS
1.13 +12 -3 exim/exim-src/src/lookups/ldap.c
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.445
retrieving revision 1.446
diff -u -r1.445 -r1.446
--- ChangeLog 19 Dec 2006 14:38:38 -0000 1.445
+++ ChangeLog 19 Dec 2006 14:51:34 -0000 1.446
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.445 2006/12/19 14:38:38 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.446 2006/12/19 14:51:34 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -353,6 +353,9 @@
PH/53 Added missing "#include <time.h>" to pcre/pcretest.c (this was a PCRE
bug, fixed in subsequent PCRE releases).
+
+PH/54 Applied Robert Bannocks' patch to avoid a problem with references that
+ arises when using the Solaris LDAP libraries (but not with OpenLDAP).
Exim version 4.63
Index: ACKNOWLEDGMENTS
===================================================================
RCS file: /home/cvs/exim/exim-src/ACKNOWLEDGMENTS,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -r1.66 -r1.67
--- ACKNOWLEDGMENTS 12 Dec 2006 15:47:39 -0000 1.66
+++ ACKNOWLEDGMENTS 19 Dec 2006 14:51:34 -0000 1.67
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.66 2006/12/12 15:47:39 ph10 Exp $
+$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.67 2006/12/19 14:51:34 ph10 Exp $
EXIM ACKNOWLEDGEMENTS
@@ -20,7 +20,7 @@
Philip Hazel
Lists created: 20 November 2002
-Last updated: 12 December 2006
+Last updated: 19 December 2006
THE OLD LIST
@@ -68,6 +68,7 @@
Justo Alonso Suggested patch for maildir++ maildirsize file support
Anton Altaparmakov Patches to get cyrus_sasl fully working
Claus Assmann Example code for OpenSSL CRL support
+Robert Bannocks Patch for LDAP reference problem on Solaris
Ian Bell Analysis of a bug and an infelicity in clock tick code
Patch for ${quote_local_part
Peter Benie A number mistakes found by analysing the code
Index: ldap.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/lookups/ldap.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ldap.c 17 Jul 2006 09:18:09 -0000 1.12
+++ ldap.c 19 Dec 2006 14:51:34 -0000 1.13
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/lookups/ldap.c,v 1.12 2006/07/17 09:18:09 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/lookups/ldap.c,v 1.13 2006/12/19 14:51:34 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -853,18 +853,27 @@
(1) If we get LDAP_SIZELIMIT_EXCEEDED, just carry on, to return the
truncated result list.
- (2) The range of errors defined by LDAP_NAME_ERROR generally mean "that
+ (2) If we get LDAP_RES_SEARCH_REFERENCE, also just carry on. This was a
+ submitted patch that is reported to "do the right thing" with Solaris
+ LDAP libraries. (The problem it addresses apparently does not occur with
+ Open LDAP.)
+
+ (3) The range of errors defined by LDAP_NAME_ERROR generally mean "that
object does not, or cannot, exist in the database". For those cases we
fail the lookup.
- (3) All other non-successes here are treated as some kind of problem with
+ (4) All other non-successes here are treated as some kind of problem with
the lookup, so return DEFER (which is the default in error_yield).
*/
DEBUG(D_lookup) debug_printf("ldap_parse_result yielded %d: %s\n",
rc, ldap_err2string(rc));
-if (rc != LDAP_SUCCESS && rc != LDAP_SIZELIMIT_EXCEEDED)
+if (rc != LDAP_SUCCESS && rc != LDAP_SIZELIMIT_EXCEEDED
+ #ifdef LDAP_RES_SEARCH_REFERENCE
+ && rc != LDAP_RES_SEARCH_REFERENCE
+ #endif
+ )
{
*errmsg = string_sprintf("LDAP search failed - error %d: %s%s%s%s%s",
rc,