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