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 6 : void init_ldap_debugging(void)
31 : {
32 : #if defined(HAVE_LDAP) && defined(HAVE_LBER_LOG_PRINT_FN)
33 : int ret;
34 6 : int ldap_debug_level = lp_ldap_debug_level();
35 :
36 6 : ret = ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, &ldap_debug_level);
37 6 : if (ret != LDAP_OPT_SUCCESS) {
38 0 : DEBUG(10, ("Error setting LDAP debug level.\n"));
39 : }
40 :
41 6 : if (ldap_debug_level == 0) {
42 2 : return;
43 : }
44 :
45 4 : ret = ber_set_option(NULL, LBER_OPT_LOG_PRINT_FN,
46 : (void *)samba_ldap_log_print_fn);
47 4 : 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 : }
|