Remove more old kline.conf stuff.
Make sure to recompile modules, stuff has been removed close to the start of ConfigFileEntry.
This commit is contained in:
parent
ed1dc6b379
commit
c6d5c019d0
|
@ -131,10 +131,6 @@ struct config_file_entry
|
||||||
{
|
{
|
||||||
const char *dpath; /* DPATH if set from command line */
|
const char *dpath; /* DPATH if set from command line */
|
||||||
const char *configfile;
|
const char *configfile;
|
||||||
const char *klinefile;
|
|
||||||
const char *dlinefile;
|
|
||||||
const char *xlinefile;
|
|
||||||
const char *resvfile;
|
|
||||||
|
|
||||||
char *egdpool_path;
|
char *egdpool_path;
|
||||||
|
|
||||||
|
@ -350,15 +346,6 @@ extern void conf_add_class(struct ConfItem *, int);
|
||||||
extern void conf_add_d_conf(struct ConfItem *);
|
extern void conf_add_d_conf(struct ConfItem *);
|
||||||
extern void flush_expired_ips(void *);
|
extern void flush_expired_ips(void *);
|
||||||
|
|
||||||
|
|
||||||
/* XXX consider moving these into kdparse.h */
|
|
||||||
extern void parse_k_file(FILE * fb);
|
|
||||||
extern void parse_d_file(FILE * fb);
|
|
||||||
extern void parse_x_file(FILE * fb);
|
|
||||||
extern void parse_resv_file(FILE *);
|
|
||||||
extern char *getfield(char *newline);
|
|
||||||
extern char *xline_encode_spaces(const char *);
|
|
||||||
|
|
||||||
extern char *get_oper_name(struct Client *client_p);
|
extern char *get_oper_name(struct Client *client_p);
|
||||||
|
|
||||||
extern int yylex(void);
|
extern int yylex(void);
|
||||||
|
|
|
@ -69,7 +69,6 @@ SRCS = \
|
||||||
irc_dictionary.c \
|
irc_dictionary.c \
|
||||||
ircd.c \
|
ircd.c \
|
||||||
ircd_signal.c \
|
ircd_signal.c \
|
||||||
kdparse.c \
|
|
||||||
listener.c \
|
listener.c \
|
||||||
logger.c \
|
logger.c \
|
||||||
match.c \
|
match.c \
|
||||||
|
|
12
src/ircd.c
12
src/ircd.c
|
@ -243,16 +243,8 @@ make_daemon(void)
|
||||||
static int printVersion = 0;
|
static int printVersion = 0;
|
||||||
|
|
||||||
struct lgetopt myopts[] = {
|
struct lgetopt myopts[] = {
|
||||||
{"dlinefile", &ConfigFileEntry.dlinefile,
|
|
||||||
STRING, "File to use for dlines.conf"},
|
|
||||||
{"configfile", &ConfigFileEntry.configfile,
|
{"configfile", &ConfigFileEntry.configfile,
|
||||||
STRING, "File to use for ircd.conf"},
|
STRING, "File to use for ircd.conf"},
|
||||||
{"klinefile", &ConfigFileEntry.klinefile,
|
|
||||||
STRING, "File to use for kline.conf"},
|
|
||||||
{"xlinefile", &ConfigFileEntry.xlinefile,
|
|
||||||
STRING, "File to use for xline.conf"},
|
|
||||||
{"resvfile", &ConfigFileEntry.resvfile,
|
|
||||||
STRING, "File to use for resv.conf"},
|
|
||||||
{"logfile", &logFileName,
|
{"logfile", &logFileName,
|
||||||
STRING, "File to use for ircd.log"},
|
STRING, "File to use for ircd.log"},
|
||||||
{"pidfile", &pidFileName,
|
{"pidfile", &pidFileName,
|
||||||
|
@ -550,10 +542,6 @@ main(int argc, char *argv[])
|
||||||
|
|
||||||
ConfigFileEntry.dpath = DPATH;
|
ConfigFileEntry.dpath = DPATH;
|
||||||
ConfigFileEntry.configfile = CPATH; /* Server configuration file */
|
ConfigFileEntry.configfile = CPATH; /* Server configuration file */
|
||||||
ConfigFileEntry.klinefile = KPATH; /* Server kline file */
|
|
||||||
ConfigFileEntry.dlinefile = DLPATH; /* dline file */
|
|
||||||
ConfigFileEntry.xlinefile = XPATH;
|
|
||||||
ConfigFileEntry.resvfile = RESVPATH;
|
|
||||||
ConfigFileEntry.connect_timeout = 30; /* Default to 30 */
|
ConfigFileEntry.connect_timeout = 30; /* Default to 30 */
|
||||||
|
|
||||||
umask(077); /* better safe than sorry --SRB */
|
umask(077); /* better safe than sorry --SRB */
|
||||||
|
|
360
src/kdparse.c
360
src/kdparse.c
|
@ -1,360 +0,0 @@
|
||||||
/*
|
|
||||||
* ircd-ratbox: A slightly useful ircd.
|
|
||||||
* kdparse.c: Parses K and D lines.
|
|
||||||
*
|
|
||||||
* Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
|
|
||||||
* Copyright (C) 1996-2002 Hybrid Development Team
|
|
||||||
* Copyright (C) 2002-2005 ircd-ratbox development team
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
* $Id: kdparse.c 254 2005-09-21 23:35:12Z nenolod $
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "stdinc.h"
|
|
||||||
#include "logger.h"
|
|
||||||
#include "s_conf.h"
|
|
||||||
#include "s_newconf.h"
|
|
||||||
#include "hostmask.h"
|
|
||||||
#include "client.h"
|
|
||||||
#include "match.h"
|
|
||||||
#include "hash.h"
|
|
||||||
|
|
||||||
/* conf_add_fields()
|
|
||||||
*
|
|
||||||
* inputs - pointer to config item, host/pass/user/operreason/date fields
|
|
||||||
* output - NONE
|
|
||||||
* side effects - update respective fields with pointers
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
conf_add_fields(struct ConfItem *aconf, const char *host_field,
|
|
||||||
const char *pass_field, const char *user_field,
|
|
||||||
const char *operreason_field, const char *date_field)
|
|
||||||
{
|
|
||||||
if(host_field != NULL)
|
|
||||||
aconf->host = rb_strdup(host_field);
|
|
||||||
if(pass_field != NULL)
|
|
||||||
{
|
|
||||||
if(!EmptyString(date_field))
|
|
||||||
{
|
|
||||||
aconf->passwd = rb_malloc(strlen(pass_field) + strlen(date_field) + 4);
|
|
||||||
rb_sprintf(aconf->passwd, "%s (%s)", pass_field, date_field);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
aconf->passwd = rb_strdup(pass_field);
|
|
||||||
}
|
|
||||||
if(user_field != NULL)
|
|
||||||
aconf->user = rb_strdup(user_field);
|
|
||||||
if(operreason_field != NULL)
|
|
||||||
aconf->spasswd = rb_strdup(operreason_field);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* parse_k_file
|
|
||||||
* Inputs - pointer to line to parse
|
|
||||||
* Output - NONE
|
|
||||||
* Side Effects - Parse one new style K line
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
parse_k_file(FILE * file)
|
|
||||||
{
|
|
||||||
struct ConfItem *aconf;
|
|
||||||
char *user_field = NULL;
|
|
||||||
char *reason_field = NULL;
|
|
||||||
char *operreason_field = NULL;
|
|
||||||
char *host_field = NULL;
|
|
||||||
char *date_field = NULL;
|
|
||||||
char line[BUFSIZE];
|
|
||||||
char *p;
|
|
||||||
|
|
||||||
while (fgets(line, sizeof(line), file))
|
|
||||||
{
|
|
||||||
if((p = strchr(line, '\n')) != NULL)
|
|
||||||
*p = '\0';
|
|
||||||
|
|
||||||
if((*line == '\0') || (*line == '#'))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
user_field = getfield(line);
|
|
||||||
if(EmptyString(user_field))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
host_field = getfield(NULL);
|
|
||||||
if(EmptyString(host_field))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
reason_field = getfield(NULL);
|
|
||||||
if(EmptyString(reason_field))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
operreason_field = getfield(NULL);
|
|
||||||
date_field = getfield(NULL);
|
|
||||||
|
|
||||||
aconf = make_conf();
|
|
||||||
aconf->status = CONF_KILL;
|
|
||||||
conf_add_fields(aconf, host_field, reason_field,
|
|
||||||
user_field, operreason_field, date_field);
|
|
||||||
|
|
||||||
if(aconf->host != NULL)
|
|
||||||
add_conf_by_address(aconf->host, CONF_KILL, aconf->user, NULL, aconf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* parse_d_file
|
|
||||||
* Inputs - pointer to line to parse
|
|
||||||
* Output - NONE
|
|
||||||
* Side Effects - Parse one new style D line
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
parse_d_file(FILE * file)
|
|
||||||
{
|
|
||||||
struct ConfItem *aconf;
|
|
||||||
char *reason_field = NULL;
|
|
||||||
char *host_field = NULL;
|
|
||||||
char *operreason_field = NULL;
|
|
||||||
char *date_field = NULL;
|
|
||||||
char line[BUFSIZE];
|
|
||||||
char *p;
|
|
||||||
|
|
||||||
while (fgets(line, sizeof(line), file))
|
|
||||||
{
|
|
||||||
if((p = strchr(line, '\n')))
|
|
||||||
*p = '\0';
|
|
||||||
|
|
||||||
if((*line == '\0') || (line[0] == '#'))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
host_field = getfield(line);
|
|
||||||
if(EmptyString(host_field))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
reason_field = getfield(NULL);
|
|
||||||
if(EmptyString(reason_field))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
operreason_field = getfield(NULL);
|
|
||||||
date_field = getfield(NULL);
|
|
||||||
|
|
||||||
aconf = make_conf();
|
|
||||||
aconf->status = CONF_DLINE;
|
|
||||||
conf_add_fields(aconf, host_field, reason_field, "", operreason_field, date_field);
|
|
||||||
conf_add_d_conf(aconf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
|
||||||
xline_encode_spaces(const char *mask)
|
|
||||||
{
|
|
||||||
int i, j;
|
|
||||||
int spaces = 0;
|
|
||||||
int backslash = 0;
|
|
||||||
char *encoded;
|
|
||||||
|
|
||||||
for (i = 0; mask[i] != '\0'; i++)
|
|
||||||
if (mask[i] == ' ')
|
|
||||||
spaces++;
|
|
||||||
encoded = rb_malloc(i + spaces + 1);
|
|
||||||
for (i = 0, j = 0; mask[i] != '\0'; i++)
|
|
||||||
{
|
|
||||||
if (mask[i] == '\\')
|
|
||||||
backslash = !backslash;
|
|
||||||
else if (mask[i] == ' ')
|
|
||||||
{
|
|
||||||
if (!backslash)
|
|
||||||
encoded[j++] = '\\';
|
|
||||||
encoded[j++] = 's';
|
|
||||||
backslash = 0;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
backslash = 0;
|
|
||||||
encoded[j++] = mask[i];
|
|
||||||
}
|
|
||||||
return encoded;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
parse_x_file(FILE * file)
|
|
||||||
{
|
|
||||||
struct ConfItem *aconf;
|
|
||||||
char *gecos_field = NULL;
|
|
||||||
char *reason_field = NULL;
|
|
||||||
char line[BUFSIZE];
|
|
||||||
char *p;
|
|
||||||
char *encoded;
|
|
||||||
|
|
||||||
while (fgets(line, sizeof(line), file))
|
|
||||||
{
|
|
||||||
if((p = strchr(line, '\n')))
|
|
||||||
*p = '\0';
|
|
||||||
|
|
||||||
if((*line == '\0') || (line[0] == '#'))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
gecos_field = getfield(line);
|
|
||||||
if(EmptyString(gecos_field))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/* field for xline types, which no longer exist */
|
|
||||||
getfield(NULL);
|
|
||||||
|
|
||||||
reason_field = getfield(NULL);
|
|
||||||
if(EmptyString(reason_field))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/* sanity checking */
|
|
||||||
if((find_xline_mask(gecos_field) != NULL) ||
|
|
||||||
(strchr(reason_field, ':') != NULL))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
encoded = xline_encode_spaces(gecos_field);
|
|
||||||
if (find_xline_mask(encoded) != NULL)
|
|
||||||
{
|
|
||||||
rb_free(encoded);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
aconf = make_conf();
|
|
||||||
aconf->status = CONF_XLINE;
|
|
||||||
|
|
||||||
aconf->host = encoded;
|
|
||||||
aconf->passwd = rb_strdup(reason_field);
|
|
||||||
|
|
||||||
rb_dlinkAddAlloc(aconf, &xline_conf_list);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
parse_resv_file(FILE * file)
|
|
||||||
{
|
|
||||||
struct ConfItem *aconf;
|
|
||||||
char *reason_field;
|
|
||||||
char *host_field;
|
|
||||||
char line[BUFSIZE];
|
|
||||||
char *p;
|
|
||||||
|
|
||||||
while (fgets(line, sizeof(line), file))
|
|
||||||
{
|
|
||||||
if((p = strchr(line, '\n')))
|
|
||||||
*p = '\0';
|
|
||||||
|
|
||||||
if((*line == '\0') || (line[0] == '#'))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
host_field = getfield(line);
|
|
||||||
if(EmptyString(host_field))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
reason_field = getfield(NULL);
|
|
||||||
if(EmptyString(reason_field))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(IsChannelName(host_field))
|
|
||||||
{
|
|
||||||
if(hash_find_resv(host_field))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
aconf = make_conf();
|
|
||||||
aconf->status = CONF_RESV_CHANNEL;
|
|
||||||
aconf->port = 0;
|
|
||||||
|
|
||||||
aconf->host = rb_strdup(host_field);
|
|
||||||
aconf->passwd = rb_strdup(reason_field);
|
|
||||||
add_to_resv_hash(aconf->host, aconf);
|
|
||||||
}
|
|
||||||
else if(clean_resv_nick(host_field))
|
|
||||||
{
|
|
||||||
if(find_nick_resv_mask(host_field))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
aconf = make_conf();
|
|
||||||
aconf->status = CONF_RESV_NICK;
|
|
||||||
aconf->port = 0;
|
|
||||||
|
|
||||||
aconf->host = rb_strdup(host_field);
|
|
||||||
aconf->passwd = rb_strdup(reason_field);
|
|
||||||
rb_dlinkAddAlloc(aconf, &resv_conf_list);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* getfield
|
|
||||||
*
|
|
||||||
* inputs - input buffer
|
|
||||||
* output - next field
|
|
||||||
* side effects - field breakup for ircd.conf file.
|
|
||||||
*/
|
|
||||||
char *
|
|
||||||
getfield(char *newline)
|
|
||||||
{
|
|
||||||
static char *line = NULL;
|
|
||||||
char *end, *field;
|
|
||||||
|
|
||||||
if(newline != NULL)
|
|
||||||
line = newline;
|
|
||||||
|
|
||||||
if(line == NULL)
|
|
||||||
return (NULL);
|
|
||||||
|
|
||||||
field = line;
|
|
||||||
|
|
||||||
/* XXX make this skip to first " if present */
|
|
||||||
if(*field == '"')
|
|
||||||
field++;
|
|
||||||
else
|
|
||||||
return (NULL); /* mal-formed field */
|
|
||||||
|
|
||||||
end = strchr(line, ',');
|
|
||||||
|
|
||||||
while(1)
|
|
||||||
{
|
|
||||||
/* no trailing , - last field */
|
|
||||||
if(end == NULL)
|
|
||||||
{
|
|
||||||
end = line + strlen(line);
|
|
||||||
line = NULL;
|
|
||||||
|
|
||||||
if(*end == '"')
|
|
||||||
{
|
|
||||||
*end = '\0';
|
|
||||||
return field;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* look for a ", to mark the end of a field.. */
|
|
||||||
if(*(end - 1) == '"')
|
|
||||||
{
|
|
||||||
line = end + 1;
|
|
||||||
end--;
|
|
||||||
*end = '\0';
|
|
||||||
return field;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* search for the next ',' */
|
|
||||||
end++;
|
|
||||||
end = strchr(end, ',');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
17
src/s_conf.c
17
src/s_conf.c
|
@ -635,23 +635,6 @@ rehash(int sig)
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct banconf_entry
|
|
||||||
{
|
|
||||||
const char **filename;
|
|
||||||
void (*func) (FILE *);
|
|
||||||
int perm;
|
|
||||||
} banconfs[] = {
|
|
||||||
{ &ConfigFileEntry.klinefile, parse_k_file, 0 },
|
|
||||||
{ &ConfigFileEntry.klinefile, parse_k_file, 1 },
|
|
||||||
{ &ConfigFileEntry.dlinefile, parse_d_file, 0 },
|
|
||||||
{ &ConfigFileEntry.dlinefile, parse_d_file, 1 },
|
|
||||||
{ &ConfigFileEntry.xlinefile, parse_x_file, 0 },
|
|
||||||
{ &ConfigFileEntry.xlinefile, parse_x_file, 1 },
|
|
||||||
{ &ConfigFileEntry.resvfile, parse_resv_file,0 },
|
|
||||||
{ &ConfigFileEntry.resvfile, parse_resv_file,1 },
|
|
||||||
{ NULL, NULL, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
void
|
void
|
||||||
rehash_bans(int sig)
|
rehash_bans(int sig)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue