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
 -------------------------------------------
@@ -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.
 
+56. Improve error message when ldap_search() fails in OpenLDAP or Solaris LDAP.
+
 
 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    *
@@ -560,7 +560,16 @@ msgid = ldap_search(lcp->ld, ludp->lud_dn, ludp->lud_scope, ludp->lud_filter,
 
 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;
   }