]> git.sur5r.net Git - openldap/blob - libraries/liblutil/debug.c
Fix misc syntax warnings and/or bugs.
[openldap] / libraries / liblutil / debug.c
1 /* $OpenLDAP$ */
2 /*
3  * Copyright 1998-1999 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
33 static FILE *log_file;
34
35 int lutil_debug_file( FILE *file )
36 {
37         log_file = file;
38
39         return 0;
40 }
41
42 void (lutil_debug)( int level, int debug, const char *fmt, ... )
43 {
44         char buffer[4096];
45         va_list vl;
46
47         if ( !(level & debug ) )
48                 return;
49
50 #ifdef HAVE_WINSOCK
51         if( log_file == NULL )
52     {
53                 log_file = fopen( LDAP_RUNDIR LDAP_DIRSEP "openldap.log", "w" );
54
55         if ( log_file == NULL )
56                         log_file = fopen( "openldap.log", "w" );
57
58                 if ( log_file == NULL )
59                         return;
60         }
61 #endif
62
63         va_start( vl, fmt );
64
65 #ifdef HAVE_VSNPRINTF
66         vsnprintf( buffer, sizeof(buffer), fmt, vl );
67 #else
68         vsprintf( buffer, fmt, vl );
69 #endif
70         buffer[sizeof(buffer)-1] = '\0';
71
72         if( log_file != NULL ) {
73                 fputs( buffer, log_file );
74                 fflush( log_file );
75         }
76
77     fputs( buffer, stderr );
78         va_end( vl );
79 }