diff options
Diffstat (limited to 'util')
-rw-r--r-- | util/ChangeLog | 4 | ||||
-rw-r--r-- | util/logger.c | 22 |
2 files changed, 16 insertions, 10 deletions
diff --git a/util/ChangeLog b/util/ChangeLog index 68964a664..956c2085d 100644 --- a/util/ChangeLog +++ b/util/ChangeLog @@ -1,3 +1,7 @@ +Fri Aug 18 14:27:14 CEST 2000 Werner Koch <[email protected]> + + * logger.c (log_set_file): Allow to set the file by name. + Fri Jul 28 18:19:11 CEST 2000 Werner Koch <[email protected]> * iobuf.c: Use setmode() at several places to set stdin and stdout diff --git a/util/logger.c b/util/logger.c index bb0b89e8b..ccf049f0c 100644 --- a/util/logger.c +++ b/util/logger.c @@ -41,17 +41,19 @@ static FILE *logfp; void log_set_logfile( const char *name, int fd ) { - if( name ) - BUG(); - if( logfp && logfp != stderr && logfp != stdout ) - fclose( logfp ); - if( fd == 1 ) - logfp = stdout; - else if( fd == 2 ) - logfp = stderr; - else - logfp = fdopen( fd, "a" ); + fclose( logfp ); + if( name ) { + logfp = fopen ( name, "a" ); + } + else { + if( fd == 1 ) + logfp = stdout; + else if( fd == 2 ) + logfp = stderr; + else + logfp = fdopen( fd, "a" ); + } if( !logfp ) { logfp = stderr; log_fatal("can't open fd %d for logging: %s\n", fd, strerror(errno)); |