Metropoli BBS
VIEWER: config.c MODE: TEXT (ASCII)
/*
 * This part was written by Harald Kipp
 *
 * Bug reports should be sent to
 *
 *  harald@os2point.ping.de
 *  harald@sesam.com
 *  Fido: 2:2448/434
 *
 * This module contains routines to read the configuration file.
 *
 */

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <direct.h>

#include <chanlib.h>

#include "config.h"

CONFIG cfg;

/************************************************************************/
/*                                                                      */
/*                                                                      */
/************************************************************************/
void init_cfg(void)
{
    char *cp;

    memset(&cfg, 0, sizeof(cfg));
    if((cp = getenv("CHANGIWORKDIR")) != NULL)
        strcpy(cfg.workdir, cp);
    else
        fine_dir(getcwd(cfg.workdir, sizeof(cfg.workdir)), NULL);
    fine_dir(strcpy(cfg.logfile, "chanx.log"), cfg.workdir);
    fine_dir(strcpy(cfg.configfile, "changi.cfg"), cfg.workdir);
    fine_dir(strcpy(cfg.pidfile, "chanx.pid"), cfg.workdir);
    fine_dir(strcpy(cfg.newsgroups, "newsgroups"), cfg.workdir);
    fine_dir(strcpy(cfg.newnwsgrps, "newsgroups.new"), cfg.workdir);
    fine_dir(strcpy(cfg.oldnwsgrps, "newsgroups.old"), cfg.workdir);
    strcpy(cfg.remoteport, "nntp");
}

/************************************************************************/
/*                                                                      */
/*                                                                      */
/************************************************************************/
int validate_cfg(void)
{
    int result = 1;

    if(fine_dir(cfg.spooldir, cfg.workdir) == NULL)
        fine_dir(strcpy(cfg.spooldir, "spool"), cfg.workdir);
    if(fine_dir(cfg.historyfile, cfg.workdir) == NULL)
        fine_dir(strcpy(cfg.historyfile, "history"), cfg.workdir);
    if(fine_dir(cfg.rnewscall, NULL) == NULL)
        strcpy(cfg.rnewscall, "rnews");

    return(result);
}
[ RETURN TO DIRECTORY ]