Skip to content
Snippets Groups Projects
Select Git revision
  • 22aaec41b283dd9cb6d3b9b05f346e6ec14f44ff
  • master default
  • dbck-q-n-d-link
  • foutput-text_stat-override
  • generations
  • text-stat-sha256
  • use-nettle
  • import-nettle
  • refactor-cached_get_text
  • refactor-cached_get_text-part-2
  • add-text_store
  • introduce-generation_position
  • remove-reclamation
  • dbfile-temp-filenames
  • sstrdup
  • dbfile_open_read-check-magic
  • adns_dist
  • liboop_dist
  • search
  • isc
  • dbdbckmultiplechoice
  • last.cvs.revision
  • 2.1.2
  • 2.1.1
  • 2.1.0
  • adns_1_0
  • liboop_0_9
  • 2.0.7
  • search_bp
  • 2.0.6
  • 2.0.5
  • isc_1_01
  • Protocol-A-10.4
  • 2.0.4
  • 2.0.3
  • 2.0.2
  • 2.0.1
  • 2.0.0
  • isc_1_00
  • isc_merge_1999_05_01
  • isc_merge_1999_04_21
41 results

logII.c

Blame
  • logII.c 1.74 KiB
    /*
     * log.c
     *
     * File created by ceder 1990-05-25.
     */
    
    #include <stdarg.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    enum 
    {
        MESSAGE,			/* No action when message_counter is 0. */
        WARNING,			/* Sync&Restart when message_counter is 0. */
        RESTART,			/* Sync&Restart immediately. */
        CRASH			/* Don't sync, but restart immediately. */
        } log_class;
    
    typedef enum log_class Log_class;
    
        
    extern void
    log (Log_class	 class,
         const char *file,
         const char *function,
         int	*message_counter,
         const char *format, ...)
    {
        va_list AP;
        time_t clock;
        Bool log_it = TRUE;
        Bool restart = FALSE;
    
        va_start(AP, format);
        time(&clock);
    
        switch(log_class)
        {
        case MESSAGE:
    	if ( message_counter != NULL && message_counter > 0 )
    	    message_counter--;
    	else
    	    log_it = FALSE;
    	break;
        case WARNING:
    	if ( message_counter != NULL )
    	    if ( *message_counter > 0 )
    		message_counter--;
    	    else
    		restart = TRUE;
    	break;
        case RESTART:
        case CRASH:
    	break;
    #ifndef COMPILE_CHECKS
        default:
    	fprintf(stderr, "Deep Internal Error: log() called"
    		"with log_class %d.\n", log_class);
    #endif
        }
    
        if ( log_it == TRUE )
        {
    	fprintf(stderr, "--> %-19s %-29s %s", ctime(&clock));
    	vfprintf(stderr, format, AP);
        }
    
        if ( log_class == RESTART || (log_class == WARNING
    				  && message_counter != NULL
    				  && *message_counter <= 0))
        {
    	fprintf(stderr, "++> Syncing.\n");
    	cache_sync();
        }
    
        if ( restart == TRUE || log_class == RESTART || log_class == CRASH )
        {
    	fprintf(stderr, "+++> Restarting LysKOM.\n");
    /* #include "CloseFileDescriptors" */
    	execl("/usr/lyskom/bin/ramkomd", "ramkomd", NULL);
    	fprintf(stderr, "+++> execl() failed.\n");
    	exit(1);
        }
    
        va_end(AP);
    }