Line data Source code
1 : /* 2 : * Unix SMB/CIFS implementation. 3 : * Intercept libldap debug output. 4 : * Copyright (C) Michael Adam 2008 5 : * 6 : * This program is free software; you can redistribute it and/or modify it 7 : * under the terms of the GNU General Public License as published by the Free 8 : * Software Foundation; either version 3 of the License, or (at your option) 9 : * any later version. 10 : * 11 : * This program is distributed in the hope that it will be useful, but WITHOUT 12 : * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 : * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 14 : * more details. 15 : * 16 : * You should have received a copy of the GNU General Public License along with 17 : * this program; if not, see <http://www.gnu.org/licenses/>. 18 : */ 19 : 20 : #include "includes.h" 21 : #include "smb_ldap.h" 22 : 23 : #if defined(HAVE_LDAP) && defined(HAVE_LBER_LOG_PRINT_FN) 24 0 : static void samba_ldap_log_print_fn(LDAP_CONST char *data) 25 : { 26 0 : DEBUG(lp_ldap_debug_threshold(), ("[LDAP] %s", data)); 27 0 : } 28 : #endif 29 : 30 8 : void init_ldap_debugging(void) 31 : { 32 : #if defined(HAVE_LDAP) && defined(HAVE_LBER_LOG_PRINT_FN) 33 0 : int ret; 34 7 : int ldap_debug_level = lp_ldap_debug_level(); 35 : 36 7 : ret = ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, &ldap_debug_level); 37 7 : if (ret != LDAP_OPT_SUCCESS) { 38 0 : DEBUG(10, ("Error setting LDAP debug level.\n")); 39 : } 40 : 41 7 : if (ldap_debug_level == 0) { 42 2 : return; 43 : } 44 : 45 5 : ret = ber_set_option(NULL, LBER_OPT_LOG_PRINT_FN, 46 : (void *)samba_ldap_log_print_fn); 47 5 : if (ret != LBER_OPT_SUCCESS) { 48 0 : DEBUG(10, ("Error setting LBER log print function.\n")); 49 : } 50 : #endif /* HAVE_LDAP && HAVE_LBER_LOG_PRINT_FN */ 51 1 : }