2004-01-20 21:32:43 +03:00
/*
* Guillaume Cottenceau ( gc @ mandrakesoft . com )
*
* Copyright 2000 MandrakeSoft
*
* This software may be freely redistributed under the terms of the GNU
* public license .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*
*/
/*
* Portions from Erik Troan ( ewt @ redhat . com )
*
2018-05-09 15:21:26 +03:00
* Copyright 1996 Red Hat Software
2004-01-20 21:32:43 +03:00
*
*/
# include <stdlib.h>
# include <unistd.h>
# include <fcntl.h>
# include <stdarg.h>
# include <stdio.h>
# include <string.h>
# include <time.h>
# include <errno.h>
2013-08-21 18:45:06 +04:00
# include <sys/types.h>
# include <sys/stat.h>
2004-01-20 21:32:43 +03:00
# include "stage1.h"
# include "log.h"
2010-11-20 19:20:08 +03:00
2004-01-20 21:32:43 +03:00
static FILE * logfile = NULL ;
void vlog_message ( const char * s , va_list args )
{
fprintf ( logfile , " * " ) ;
vfprintf ( logfile , s , args ) ;
fprintf ( logfile , " \n " ) ;
fflush ( logfile ) ;
}
void log_message ( const char * s , . . . )
{
va_list args ;
if ( ! logfile ) {
fprintf ( stderr , " Log is not open! \n " ) ;
return ;
}
va_start ( args , s ) ;
vlog_message ( s , args ) ;
va_end ( args ) ;
2018-05-09 15:21:26 +03:00
2004-01-20 21:32:43 +03:00
return ;
}
void log_perror ( char * msg )
{
log_message ( " %s: %s " , msg , strerror ( errno ) ) ;
}
void open_log ( void )
{
if ( ! IS_TESTING ) {
2010-11-20 19:20:08 +03:00
mknod ( " /dev/tty3 " , S_IFCHR , MKDEV ( 4 , 3 ) ) ;
logfile = fopen ( " /dev/tty3 " , " w " ) ;
2004-01-20 21:32:43 +03:00
if ( ! logfile )
logfile = fopen ( " /tmp/install.log " , " a " ) ;
}
else
logfile = fopen ( " debug.log " , " w " ) ;
}
void close_log ( void )
{
if ( logfile ) {
log_message ( " stage1: disconnecting life support systems " ) ;
fclose ( logfile ) ;
}
}