]> git.sur5r.net Git - openldap/blob - libraries/liblutil/debug.c
make function match it's decleration
[openldap] / libraries / liblutil / debug.c
1 /* $OpenLDAP$ */
2 /*
3  * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
4  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
5  */
6 /*
7  * Copyright (c) 1996, 1998 by Internet Software Consortium.
8  *
9  * Permission to use, copy, modify, and distribute this software for any
10  * purpose with or without fee is hereby granted, provided that the above
11  * copyright notice and this permission notice appear in all copies.
12  *
13  * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
14  * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
15  * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
16  * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
17  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
18  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
19  * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
20  * SOFTWARE.
21  */
22
23 #include "portable.h"
24
25 #include <stdio.h>
26
27 #include <ac/stdarg.h>
28 #include <ac/string.h>
29
30 #include "ldap_log.h"
31 #include "ldap_defaults.h"
32 #include "lber.h"
33
34 static FILE *log_file;
35
36 int lutil_debug_file( FILE *file )
37 {
38         log_file = file;
39         ber_set_option( NULL, LBER_OPT_LOG_PRINT_FILE, file );
40
41         return 0;
42 }
43
44 void (lutil_debug)( int debug, int level, const char *fmt, ... )
45 {
46         char buffer[4096];
47         va_list vl;
48
49         if ( !(level & debug ) )
50                 return;
51
52 #ifdef HAVE_WINSOCK
53         if( log_file == NULL ) {
54                 log_file = fopen( LDAP_RUNDIR LDAP_DIRSEP "openldap.log", "w" );
55
56                 if ( log_file == NULL )
57                         log_file = fopen( "openldap.log", "w" );
58
59                 if ( log_file == NULL )
60                         return;
61
62                 ber_set_option( NULL, LBER_OPT_LOG_PRINT_FILE, log_file );
63         }
64 #endif
65         va_start( vl, fmt );
66
67 #ifdef HAVE_VSNPRINTF
68         vsnprintf( buffer, sizeof(buffer), fmt, vl );
69 #else
70         vsprintf( buffer, fmt, vl );
71 #endif
72         buffer[sizeof(buffer)-1] = '\0';
73
74         if( log_file != NULL ) {
75                 fputs( buffer, log_file );
76                 fflush( log_file );
77         }
78
79     fputs( buffer, stderr );
80         va_end( vl );
81 }