Files
undernet-cservice/Sources/conf.c
2015-01-25 18:26:44 -06:00

242 lines
6.5 KiB
C

/* @(#)$Id: conf.c,v 1.5 1998/01/22 09:36:11 chaos Exp $ */
/* Undernet Channel Service (X)
* Copyright (C) 1995-2002 Robin Thellend
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* The author can be contact by email at <csfeedback@robin.pfft.net>
*
* Please note that this software is unsupported and mostly
* obsolete. It was replaced by GNUworld/CMaster. See
* http://gnuworld.sourceforge.net/ for more information.
*/
#include "h.h"
void read_conf(char *conf)
{
FILE *fp;
char buffer[1024], *ptr;
fp = fopen(conf, "r");
if (fp == NULL)
{
perror(conf);
exit(1);
}
while (fgets(buffer, 1024, fp) != NULL)
{
if (*buffer == '#' || *buffer == '\0')
continue;
if ((ptr = strchr(buffer, '\n')) != NULL)
*ptr = '\0';
if (!strncasecmp(buffer, "NICKNAME ", 9))
{
strncpy(mynick, buffer + 9, NICK_LENGTH);
mynick[NICK_LENGTH - 1] = '\0';
}
else if (!strncasecmp(buffer, "USERNAME ", 9))
{
strncpy(myuser, buffer + 9, USERNAME_LENGTH);
myuser[USERNAME_LENGTH - 1] = '\0';
}
else if (!strncasecmp(buffer, "HOSTNAME ", 9))
{
strncpy(mysite, buffer + 9, SITE_LENGTH);
mysite[SITE_LENGTH - 1] = '\0';
}
else if (!strncasecmp(buffer, "REALNAME ", 9))
{
strncpy(myrealname, buffer + 9, REALNAME_LENGTH);
myrealname[REALNAME_LENGTH - 1] = '\0';
}
else if (!strncasecmp(buffer, "UPLINK ", 7))
{
strncpy(server, buffer + 7, SERVER_NAME_LENGTH);
server[SERVER_NAME_LENGTH - 1] = '\0';
}
else if (!strncasecmp(buffer, "PORT ", 5))
{
DEFAULT_PORTNUM = atoi(buffer + 5);
}
else if (!strncasecmp(buffer, "UMODE ", 6))
{
strncpy(UMODE, buffer + 6, 10);
UMODE[9] = '\0';
}
else if (!strncasecmp(buffer, "SERVERNAME ", 11))
{
strncpy(SERVERNAME, buffer + 11, 80);
SERVERNAME[79] = '\0';
}
else if (!strncasecmp(buffer, "SERVERINFO ", 11))
{
strncpy(SERVERINFO, buffer + 11, 80);
SERVERINFO[79] = '\0';
}
else if (!strncasecmp(buffer, "PASSWORD ", 9))
{
strncpy(PASSWORD, buffer + 9, 80);
PASSWORD[79] = '\0';
}
else if (!strncasecmp(buffer, "HOMEDIR ", 8))
{
strncpy(HOMEDIR, buffer + 8, 256);
HOMEDIR[255] = '\0';
}
else if (!strncasecmp(buffer, "UMASK ", 6))
{
sscanf(buffer + 6, "%d", &UMASK);
}
else if (!strncasecmp(buffer, "EXEC ", 5))
{
strncpy(EXEC_FILE, buffer + 5, 256);
EXEC_FILE[255] = '\0';
}
else if (!strncasecmp(buffer, "MOTD ", 5))
{
strncpy(MOTD_FILE, buffer + 5, 256);
MOTD_FILE[255] = '\0';
}
else if (!strncasecmp(buffer, "LOG ", 4))
{
strncpy(LOGFILE, buffer + 4, 256);
LOGFILE[255] = '\0';
}
else if (!strncasecmp(buffer, "LOGBAK ", 7))
{
strncpy(LOGFILEBAK, buffer + 7, 256);
LOGFILEBAK[255] = '\0';
}
else if (!strncasecmp(buffer, "PID ", 4))
{
strncpy(PIDFILE, buffer + 4, 256);
PIDFILE[255] = '\0';
}
else if (!strncasecmp(buffer, "HELPDIR ", 8))
{
strncpy(HELP_DIR, buffer + 8, 256);
HELP_DIR[255] = '\0';
}
else if (!strncasecmp(buffer, "MASTER_NICK ", 12))
{
strncpy(MASTER_REALNAME, buffer + 12, 80);
MASTER_REALNAME[79] = '\0';
}
else if (!strncasecmp(buffer, "MASTER_MASK ", 12))
{
strncpy(MASTER_MATCH, buffer + 12, 80);
MASTER_MATCH[79] = '\0';
}
else if (!strncasecmp(buffer, "MASTER_PASSWD ", 14))
{
strncpy(MASTER_PASSWD, buffer + 14, 20);
MASTER_PASSWD[19] = '\0';
}
else if (!strncasecmp(buffer, "BROADCAST ", 10))
{
strncpy(BROADCAST_CHANNEL, buffer + 10, 80);
BROADCAST_CHANNEL[79] = '\0';
}
else if (!strncasecmp(buffer, "VERIFYID ", 9))
{
strncpy(VERIFY_ID, buffer + 9, 256);
VERIFY_ID[255] = '\0';
}
else if (!strncasecmp(buffer, "UWORLD_NICK ", 12))
{
strncpy(UWORLD, buffer + 12, 10);
UWORLD[9] = '\0';
}
else if (!strncasecmp(buffer, "UWORLD_HOST ", 12))
{
strncpy(UWORLD_HOST, buffer + 12, 80);
UWORLD_HOST[79] = '\0';
}
else if (!strncasecmp(buffer, "UWORLD_SERVER ", 14))
{
strncpy(UWORLD_SERVER, buffer + 14, 80);
UWORLD_SERVER[79] = '\0';
}
else if (!strncasecmp(buffer, "UWORLD2_NICK ", 13))
{
strncpy(UWORLD2_NICK, buffer + 13, 10);
UWORLD2_NICK[9] = '\0';
}
else if (!strncasecmp(buffer, "UWORLD2_HOST ", 13))
{
strncpy(UWORLD2_HOST, buffer + 13, 80);
UWORLD2_HOST[79] = '\0';
}
else if (!strncasecmp(buffer, "UWORLD2_SERVER ", 15))
{
strncpy(UWORLD2_SERVER, buffer + 15, 80);
UWORLD2_SERVER[79] = '\0';
}
else if (!strncasecmp(buffer, "CALMDOWNTOPIC ", 14))
{
strncpy(CALMDOWNTOPIC, buffer + 14, 512);
CALMDOWNTOPIC[511] = '\0';
}
else if (!strncasecmp(buffer, "NSERV_NICK ", 11))
{
#ifdef NICKSERV
strncpy(NSERV_NICK, buffer + 11, 10);
NSERV_NICK[9] = '\0';
#endif
}
else if (!strncasecmp(buffer, "NSERV_USER ", 11))
{
#ifdef NICKSERV
strncpy(NSERV_USER, buffer + 11, 10);
NSERV_USER[9] = '\0';
#endif
}
else if (!strncasecmp(buffer, "NSERV_HOST ", 11))
{
#ifdef NICKSERV
strncpy(NSERV_HOST, buffer + 11, 80);
NSERV_HOST[79] = '\0';
#endif
}
else if (!strncasecmp(buffer, "NSERV_INFO ", 11))
{
#ifdef NICKSERV
strncpy(NSERV_INFO, buffer + 11, 200);
NSERV_INFO[199] = '\0';
#endif
}
else if (!strncasecmp(buffer, "NSERV_STAT ", 11))
{
#ifdef NICKSERV
if (!strncmp(buffer + 11, "on", 2))
NServ_status = 1;
else if (!strncmp(buffer + 11, "off", 3))
NServ_status = 0;
else
fprintf(stderr, "NSERV_STAT: Unknown value. Must be ON or OFF\n");
#endif
}
else
{
fprintf(stderr, "%s: Unknown keyword \"%s\"\n", conf, buffer);
}
}
fclose(fp);
}