/* * This part was written by Harald Kipp * * Bug reports should be sent to * * harald@os2point.ping.de * harald@haport.sesam.com * Fido: 2:2448/434 * * This module contains routines to read the configuration file. * */ #include #include #include #include #include #include #include #include "config.h" CONFIG cfg; /************************************************************************/ /* */ /* */ /************************************************************************/ void init_cfg(void) { char *cp; memset(&cfg, 0, sizeof(cfg)); if((cp = getenv("CHANGIWORKDIR")) != NULL) fine_dir(strcpy(cfg.workdir, cp), NULL); else fine_dir(getcwd(cfg.workdir, sizeof(cfg.workdir)), NULL); fine_dir(strcpy(cfg.logfile, "chanco.log"), cfg.workdir); fine_dir(strcpy(cfg.configfile, "changi.cfg"), cfg.workdir); fine_dir(strcpy(cfg.pidfile, "chanco.pid"), cfg.workdir); } /************************************************************************/ /* */ /* */ /************************************************************************/ int validate_cfg(void) { int result = 0; if(fine_dir(cfg.active_times, cfg.workdir) == NULL) fine_dir(strcpy(cfg.active_times, "active.times"), cfg.workdir); if(fine_dir(cfg.activefile, cfg.workdir) == NULL) fine_dir(strcpy(cfg.activefile, "active"), cfg.workdir); if(fine_dir(cfg.historyfile, cfg.workdir) == NULL) fine_dir(strcpy(cfg.historyfile, "history"), cfg.workdir); if(fine_dir(cfg.newsdir, cfg.workdir) == NULL) fine_dir(strcpy(cfg.newsdir, "news"), cfg.workdir); result = 1; return(result); }