From 3c5d741cff2d495a4a0e3d40e85f419b91899f6a Mon Sep 17 00:00:00 2001
From: Quanah Gibson-Mount <quanah@openldap.org>
Date: Tue, 29 Sep 2009 23:34:09 +0000
Subject: [PATCH] print diagnostic messages when sasl_interactive_bind or
 start_tls_s failed

---
 clients/tools/common.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/clients/tools/common.c b/clients/tools/common.c
index 4d7b038c69..3ba0e375e7 100644
--- a/clients/tools/common.c
+++ b/clients/tools/common.c
@@ -1287,7 +1287,10 @@ dnssrv_free:;
 		if ( use_tls ) {
 			rc = ldap_start_tls_s( ld, NULL, NULL );
 			if ( rc != LDAP_SUCCESS ) {
-				tool_perror( "ldap_start_tls", rc, NULL, NULL, NULL, NULL );
+				char *msg=NULL;
+				ldap_get_option( ld, LDAP_OPT_DIAGNOSTIC_MESSAGE, (void*)&msg);
+				tool_perror( "ldap_start_tls", rc, NULL, NULL, msg, NULL );
+				ldap_memfree(msg);
 				if ( use_tls > 1 ) {
 					exit( EXIT_FAILURE );
 				}
@@ -1384,8 +1387,11 @@ tool_bind( LDAP *ld )
 
 		lutil_sasl_freedefs( defaults );
 		if( rc != LDAP_SUCCESS ) {
+			char *msg=NULL;
+			ldap_get_option( ld, LDAP_OPT_DIAGNOSTIC_MESSAGE, (void*)&msg);
 			tool_perror( "ldap_sasl_interactive_bind_s",
-				rc, NULL, NULL, NULL, NULL );
+				rc, NULL, NULL, msg, NULL );
+			ldap_memfree(msg);
 			exit( rc );
 		}
 #else
-- 
GitLab