/*      $NetBSD: log.c,v 1.12 2024/08/18 20:47:20 christos Exp $        */

#include <config.h>

#include "log.h"

extern const char *progname;            /* for msyslog use too */

static int counter = 0;

static void cleanup_log(void);

void
sntp_init_logging(
       const char *prog
       )
{

       msyslog_term = TRUE;
       init_logging(prog, 0, FALSE);
       msyslog_term_pid = FALSE;
       msyslog_include_timestamp = FALSE;
}

void
open_logfile(
       const char *logfile
       )
{
       change_logfile(logfile, FALSE);
       counter = 1; //counter++;
       atexit(cleanup_log);
}

//not sure about this. Are the atexit() functions called by FIFO or LIFO order? The end result is PROBABLY the same
static void
cleanup_log(void)
{
       //counter--;
       //if(counter <= 0){
       if(counter == 1){
               syslogit = TRUE;
               fflush(syslog_file);
               fclose(syslog_file);
               syslog_file = NULL;
               counter = 0;
       }
}