Improve error message when ldap_search fails in OpenLDAP or Solaris
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Tue, 21 Dec 2004 13:59:15 +0000 (13:59 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Tue, 21 Dec 2004 13:59:15 +0000 (13:59 +0000)
LDAP.

doc/doc-txt/ChangeLog
src/src/lookups/ldap.c

index 2b75b4656adc2f81255f6567b4ea4ab851920498..348f15b03f2bef0ba15854c2a5a5027d6305eb1d 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.53 2004/12/21 12:21:46 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.54 2004/12/21 13:59:15 ph10 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -239,6 +239,8 @@ Exim version 4.50
     dnsdb lookup now tests whether it's key is an IP address. If not, it leaves
     it alone. Component reversal etc. now happens only for IP addresses.
 
     dnsdb lookup now tests whether it's key is an IP address. If not, it leaves
     it alone. Component reversal etc. now happens only for IP addresses.
 
+56. Improve error message when ldap_search() fails in OpenLDAP or Solaris LDAP.
+
 
 Exim version 4.43
 -----------------
 
 Exim version 4.43
 -----------------
index 043135e039127e687d8de8ce38a43ddf20248b3c..1b5da047d5d2752e20ae5dc3109f5031a859cfd9 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/lookups/ldap.c,v 1.5 2004/12/21 12:00:59 ph10 Exp $ */
+/* $Cambridge: exim/src/src/lookups/ldap.c,v 1.6 2004/12/21 13:59:15 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -560,7 +560,16 @@ msgid = ldap_search(lcp->ld, ludp->lud_dn, ludp->lud_scope, ludp->lud_filter,
 
 if (msgid == -1)
   {
 
 if (msgid == -1)
   {
-  *errmsg = string_sprintf("ldap search initiation failed");
+  #if defined LDAP_LIB_SOLARIS || defined LDAP_LIB_OPENLDAP2
+  int err;
+  ldap_get_option(lcp->ld, LDAP_OPT_ERROR_NUMBER, &err);
+  *errmsg = string_sprintf("ldap_search failed: %d, %s", err, 
+    ldap_err2string(err));
+      
+  #else    
+  *errmsg = string_sprintf("ldap_search failed");
+  #endif
   goto RETURN_ERROR;
   }
 
   goto RETURN_ERROR;
   }