#include "s_newconf.h"
#include "newconf.h"
#include "s_serv.h"
+#include "s_user.h"
#include "s_stats.h"
#include "channel.h"
#include "class.h"
{
struct ConfItem *aconf;
char non_ident[USERLEN + 1];
+ char reasonbuf[BUFSIZE];
+ char *reason;
if(IsGotId(client_p))
{
{
if(ConfigFileEntry.kline_with_reason)
{
+ if(aconf->created)
+ {
+ snprintf(reasonbuf, sizeof reasonbuf, "%s (%s)",
+ aconf->passwd,
+ smalldate(aconf->created));
+ reason = reasonbuf;
+ }
+ else
+ reason = aconf->passwd;
sendto_one(client_p,
form_str(ERR_YOUREBANNEDCREEP),
- me.name, client_p->name, aconf->passwd);
+ me.name, client_p->name, reason);
}
add_reject(client_p, aconf->user, aconf->host);
return (BANNED_CLIENT);
ConfigFileEntry.default_operstring = rb_strdup("is an IRC operator");
ConfigFileEntry.default_adminstring = rb_strdup("is a Server Administrator");
+ ConfigFileEntry.default_operhost = rb_strdup("");
+ ConfigFileEntry.static_quit = rb_strdup("");
ConfigFileEntry.servicestring = rb_strdup("is a Network Service");
ConfigFileEntry.default_umodes = UMODE_INVISIBLE;
ConfigFileEntry.nick_delay = 900; /* 15 minutes */
ConfigFileEntry.target_change = YES;
ConfigFileEntry.anti_spam_exit_message_time = 0;
+ ConfigFileEntry.use_part_messages = YES;
ConfigFileEntry.ts_warn_delta = TS_WARN_DELTA_DEFAULT;
ConfigFileEntry.ts_max_delta = TS_MAX_DELTA_DEFAULT;
ConfigFileEntry.client_exit = YES;
ConfigFileEntry.pace_wait_simple = 1;
ConfigFileEntry.short_motd = NO;
ConfigFileEntry.no_oper_flood = NO;
+ ConfigFileEntry.true_no_oper_flood = NO;
ConfigFileEntry.fname_userlog = NULL;
ConfigFileEntry.fname_fuserlog = NULL;
ConfigFileEntry.fname_operlog = NULL;
ConfigFileEntry.oper_snomask = SNO_GENERAL;
ConfigChannel.autochanmodes = rb_strdup("nt");
+ ConfigChannel.exemptchanops = rb_strdup("");
ConfigChannel.use_halfop = YES;
- ConfigChannel.use_owner = YES;
+ ConfigChannel.use_admin = YES;
ConfigChannel.use_except = YES;
ConfigChannel.use_invex = YES;
ConfigChannel.use_knock = YES;
ConfigChannel.resv_forcepart = YES;
ConfigChannel.kick_no_rejoin_time = 30;
+ ConfigChannel.exempt_cmode_c = NO;
+ ConfigChannel.exempt_cmode_C = NO;
+ ConfigChannel.exempt_cmode_D = NO;
+ ConfigChannel.exempt_cmode_T = NO;
+ ConfigChannel.exempt_cmode_N = NO;
+ ConfigChannel.exempt_cmode_G = NO;
+ ConfigChannel.exempt_cmode_K = NO;
+
ConfigServerHide.flatten_links = 0;
ConfigServerHide.links_delay = 300;
ConfigServerHide.hidden = 0;
ConfigFileEntry.reject_duration = 120;
ConfigFileEntry.throttle_count = 4;
ConfigFileEntry.throttle_duration = 60;
+ ConfigFileEntry.expire_override_time = 300;
ServerInfo.default_max_clients = MAXCONNECTIONS;
splitmode = 0;
splitchecking = 0;
}
+
+ if(!valid_hostname(ConfigFileEntry.default_operhost))
+ {
+ conf_report_error("Warning -- invalid default_operhost specified, ignoring.");
+ ConfigFileEntry.default_operhost = rb_strdup("");
+ }
+
+ /* Parse the exemptchanops option and set the internal variables
+ * that we will use. */
+ char * ech;
+
+ for(ech = ConfigChannel.exemptchanops; *ech; ech++)
+ {
+ if(*ech == 'c')
+ {
+ ConfigChannel.exempt_cmode_c = 1;
+ continue;
+ }
+ if(*ech == 'C')
+ {
+ ConfigChannel.exempt_cmode_C = 1;
+ continue;
+ }
+ if(*ech == 'D')
+ {
+ ConfigChannel.exempt_cmode_D = 1;
+ continue;
+ }
+ if(*ech == 'T')
+ {
+ ConfigChannel.exempt_cmode_T = 1;
+ continue;
+ }
+ if(*ech == 'N')
+ {
+ ConfigChannel.exempt_cmode_N = 1;
+ continue;
+ }
+ if(*ech == 'G')
+ {
+ ConfigChannel.exempt_cmode_G = 1;
+ continue;
+ }
+ if(*ech == 'K')
+ ConfigChannel.exempt_cmode_K = 1;
+ }
}
/* add_temp_kline()
char **user, char **oper_reason)
{
static char null[] = "<NULL>";
+ static char reasonbuf[BUFSIZE];
*host = EmptyString(aconf->host) ? null : aconf->host;
- *reason = EmptyString(aconf->passwd) ? null : aconf->passwd;
*user = EmptyString(aconf->user) ? null : aconf->user;
+ *reason = EmptyString(aconf->passwd) ? null : aconf->passwd;
+ if(aconf->created)
+ {
+ rb_snprintf(reasonbuf, sizeof reasonbuf, "%s (%s)",
+ *reason, smalldate(aconf->created));
+ *reason = reasonbuf;
+ }
+
if(EmptyString(aconf->spasswd) || !IsOper(source_p))
*oper_reason = NULL;
else