X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/e787d3a226677e049a058de53406af31b25f1f61..d25c6eb1b223d1a0993dde9a28c97ef95e54bceb:/src/newconf.c diff --git a/src/newconf.c b/src/newconf.c index 233a05e..98b0fb9 100644 --- a/src/newconf.c +++ b/src/newconf.c @@ -377,6 +377,7 @@ static struct mode_table shared_table[] = { "unresv", SHARED_UNRESV }, { "locops", SHARED_LOCOPS }, { "rehash", SHARED_REHASH }, + { "die", SHARED_DIE }, { "all", SHARED_ALL }, { "none", 0 }, {NULL, 0} @@ -572,20 +573,29 @@ conf_end_oper(struct TopConf *tc) yy_tmpoper->umodes = yy_oper->umodes; yy_tmpoper->snomask = yy_oper->snomask; - if(valid_hostname(yy_oper->vhost)) - yy_tmpoper->vhost = rb_strdup(yy_oper->vhost); - else - conf_report_error("Ignoring vhost setting for oper %s -- invalid hostmask.", yy_oper->name); + if(!EmptyString(yy_oper->vhost)) + { + if(valid_hostname(yy_oper->vhost)) + yy_tmpoper->vhost = rb_strdup(yy_oper->vhost); + else if(!EmptyString(yy_oper->vhost)) + conf_report_error("Ignoring vhost setting for oper %s -- invalid hostmask.", yy_oper->name); + } - if(strlen(yy_oper->swhois < 400)) - yy_tmpoper->swhois = rb(strdup(yy_oper->swhois); - else - conf_report_error("Ignoring swhois setting for oper %s -- swhois too long.", yy_oper->name); + if(!EmptyString(yy_oper->swhois)) + { + if(strlen(yy_oper->swhois) < 400) + yy_tmpoper->swhois = rb_strdup(yy_oper->swhois); + else + conf_report_error("Ignoring swhois setting for oper %s -- swhois too long.", yy_oper->name); + } - if(strlen(yy_oper->operstring < 400)) - yy_tmpoper->operstring = rb(strdup(yy_oper->operstring); - else - conf_report_error("Ignoring operstring setting for oper %s -- operstring too long.", yy_oper->name); + if(!EmptyString(yy_oper->operstring)) + { + if(strlen(yy_oper->operstring) < 400) + yy_tmpoper->operstring = rb_strdup(yy_oper->operstring); + else + conf_report_error("Ignoring operstring setting for oper %s -- operstring too long.", yy_oper->name); + } yy_tmpoper->privset = yy_oper->privset; @@ -1222,7 +1232,7 @@ conf_set_shared_oper(void *data) if((p = strchr(args->v.string, '@')) == NULL) { - conf_report_error("Ignoring shard::oper -- oper is not a user@host"); + conf_report_error("Ignoring shared::oper -- oper is not a user@host"); return; } @@ -2179,6 +2189,7 @@ static struct ConfEntry conf_general_table[] = { "default_operstring", CF_QSTRING, NULL, REALLEN, &ConfigFileEntry.default_operstring }, { "default_adminstring",CF_QSTRING, NULL, REALLEN, &ConfigFileEntry.default_adminstring }, { "default_operhost", CF_QSTRING, NULL, REALLEN, &ConfigFileEntry.default_operhost }, + { "static_quit", CF_QSTRING, NULL, REALLEN, &ConfigFileEntry.static_quit }, { "servicestring", CF_QSTRING, NULL, REALLEN, &ConfigFileEntry.servicestring }, { "egdpool_path", CF_QSTRING, NULL, MAXPATHLEN, &ConfigFileEntry.egdpool_path }, { "kline_reason", CF_QSTRING, NULL, REALLEN, &ConfigFileEntry.kline_reason }, @@ -2186,6 +2197,7 @@ static struct ConfEntry conf_general_table[] = { "identify_command", CF_QSTRING, NULL, REALLEN, &ConfigFileEntry.identifycommand }, { "anti_spam_exit_message_time", CF_TIME, NULL, 0, &ConfigFileEntry.anti_spam_exit_message_time }, + { "use_part_messages", CF_YESNO, NULL, 0, &ConfigFileEntry.use_part_messages }, { "disable_fake_channels", CF_YESNO, NULL, 0, &ConfigFileEntry.disable_fake_channels }, { "min_nonwildcard_simple", CF_INT, NULL, 0, &ConfigFileEntry.min_nonwildcard_simple }, { "non_redundant_klines", CF_YESNO, NULL, 0, &ConfigFileEntry.non_redundant_klines }, @@ -2215,6 +2227,7 @@ static struct ConfEntry conf_general_table[] = { "min_nonwildcard", CF_INT, NULL, 0, &ConfigFileEntry.min_nonwildcard }, { "nick_delay", CF_TIME, NULL, 0, &ConfigFileEntry.nick_delay }, { "no_oper_flood", CF_YESNO, NULL, 0, &ConfigFileEntry.no_oper_flood }, + { "true_no_oper_flood", CF_YESNO, NULL, 0, &ConfigFileEntry.true_no_oper_flood }, { "operspy_admin_only", CF_YESNO, NULL, 0, &ConfigFileEntry.operspy_admin_only }, { "operspy_dont_care_user_info", CF_YESNO, NULL, 0, &ConfigFileEntry.operspy_dont_care_user_info }, { "secret_channels_in_whois", CF_YESNO, NULL, 0, &ConfigFileEntry.secret_channels_in_whois }, @@ -2262,14 +2275,14 @@ static struct ConfEntry conf_channel_table[] = { "cycle_host_change", CF_YESNO, NULL, 0, &ConfigChannel.cycle_host_change }, { "host_in_topic", CF_YESNO, NULL, 0, &ConfigChannel.host_in_topic }, { "use_halfop", CF_YESNO, NULL, 0, &ConfigChannel.use_halfop }, - { "use_owner", CF_YESNO, NULL, 0, &ConfigChannel.use_owner }, + { "use_admin", CF_YESNO, NULL, 0, &ConfigChannel.use_admin }, { "use_except", CF_YESNO, NULL, 0, &ConfigChannel.use_except }, { "use_invex", CF_YESNO, NULL, 0, &ConfigChannel.use_invex }, { "use_knock", CF_YESNO, NULL, 0, &ConfigChannel.use_knock }, { "use_forward", CF_YESNO, NULL, 0, &ConfigChannel.use_forward }, { "use_local_channels", CF_YESNO, NULL, 0, &ConfigChannel.use_local_channels }, { "resv_forcepart", CF_YESNO, NULL, 0, &ConfigChannel.resv_forcepart }, - { "kick_no_rejoin_time", CF_INT, NULL, 0, &ConfigChannel.kick_no_rejoin_time }, + { "kick_no_rejoin_time", CF_TIME, NULL, 0, &ConfigChannel.kick_no_rejoin_time }, { "exempt_cmode_c", CF_YESNO, NULL, 0, &ConfigChannel.exempt_cmode_c }, { "exempt_cmode_C", CF_YESNO, NULL, 0, &ConfigChannel.exempt_cmode_C }, { "exempt_cmode_D", CF_YESNO, NULL, 0, &ConfigChannel.exempt_cmode_D },