X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/08e35f665f35828dfcaee21b6f3ebda0660729ee..cb097b8840594b6a77aab21d0b4c20f036a7d012:/src/newconf.c diff --git a/src/newconf.c b/src/newconf.c index ebe7437..7a07675 100644 --- a/src/newconf.c +++ b/src/newconf.c @@ -571,10 +571,22 @@ conf_end_oper(struct TopConf *tc) yy_tmpoper->flags = yy_oper->flags; 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(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); + yy_tmpoper->privset = yy_oper->privset; #ifdef HAVE_LIBCRYPTO @@ -710,6 +722,18 @@ conf_set_oper_vhost(void *data) yy_oper->vhost = rb_strdup((char *) data); } +static void +conf_set_oper_swhois(void *data) +{ + yy_oper->swhois = rb_strdup((char *) data); +} + +static void +conf_set_oper_operstring(void *data) +{ + yy_oper->operstring = rb_strdup((char *) data); +} + static int conf_begin_class(struct TopConf *tc) { @@ -2077,6 +2101,8 @@ static struct ConfEntry conf_operator_table[] = { "privset", CF_QSTRING, conf_set_oper_privset, 0, NULL }, { "snomask", CF_QSTRING, conf_set_oper_snomask, 0, NULL }, { "vhost", CF_QSTRING, conf_set_oper_vhost, 0, NULL }, + { "swhois", CF_QSTRING, conf_set_oper_swhois, 0, NULL }, + { "operstring", CF_QSTRING, conf_set_oper_operstring, 0, NULL }, { "user", CF_QSTRING, conf_set_oper_user, 0, NULL }, { "password", CF_QSTRING, conf_set_oper_password, 0, NULL }, { "fingerprint", CF_QSTRING, conf_set_oper_fingerprint, 0, NULL }, @@ -2213,6 +2239,7 @@ static struct ConfEntry conf_general_table[] = { "ts_warn_delta", CF_TIME, NULL, 0, &ConfigFileEntry.ts_warn_delta }, { "use_whois_actually", CF_YESNO, NULL, 0, &ConfigFileEntry.use_whois_actually }, { "warn_no_nline", CF_YESNO, NULL, 0, &ConfigFileEntry.warn_no_nline }, + { "expire_override_time", CF_TIME, NULL, 0, &ConfigFileEntry.expire_override_time}, { "\0", 0, NULL, 0, NULL } };