view src/online.c @ 281:5eece4dfd945 noffle

[svn] * src/log.c,src/log.h: Add Log_fatal() for reporting fatal errors and exiting, Log_gdbm_fatal() for the the same but specifically as a GDBM error reporting function, and a new log debug level AUTH for a forthcoming authentication mechanism. * src/database.c,src/group.c: Provide new gdbm error function to all gdbm opens. * src/noffle.c: Add atexit() to always close databases on a program- inspired exit. * src/content.c,src/dynamicstring.c,src/fetchlist.c,src/filter.c, src/itemlist.c,src/log.c,src/log.h,src/over.c,src/protocol.h, src/request.c,src/util.c: Use Log_fatal where appropriate.
author bears
date Fri, 27 Dec 2002 21:48:25 +0000
parents 125d79c9e586
children
line wrap: on
line source

/*
  online.c

  $Id: online.c 60 2000-05-09 22:28:38Z uh1763 $
*/

#if HAVE_CONFIG_H
#include <config.h>
#endif

#include <stdio.h>
#include <unistd.h>
#include "common.h"
#include "configfile.h"
#include "log.h"
#include "online.h"
#include "portable.h"

static void
fileOnline( Str s )
{
    snprintf( s, MAXCHAR, "%s/lock/online", Cfg_spoolDir() );
}

Bool
Online_true( void )
{
    FILE *f;
    Str file;

    fileOnline( file );
    if ( ! ( f = fopen( file, "r" ) ) )
        return FALSE;
    fclose( f );
    return TRUE;
}

void
Online_set( Bool value )
{
    FILE *f;
    Str file;

    fileOnline( file );
    if ( value )
    {
        if ( ! ( f = fopen( file, "a" ) ) )
        {
            Log_err( "Could not create %s", file );
            return;
        }
        fclose( f );
        Log_inf( "NOFFLE is now online" );
    }
    else
    {
        if ( unlink( file ) != 0 )
        {
            Log_err( "Cannot remove %s", file );
            return;
        }
        Log_inf( "NOFFLE is now offline" );
    }
}