]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/newconf.c
Add operator::vhost option.
[irc/rqf/shadowircd.git] / src / newconf.c
index 8b93cf89d83d574b6b2653a9d3ac64ba050d6694..ebe7437f0b1aeaaf954bb3cb9b77fa0faa4e611a 100644 (file)
@@ -295,6 +295,7 @@ struct mode_table
 /* *INDENT-OFF* */
 static struct mode_table umode_table[] = {
        {"callerid",    UMODE_CALLERID  },
+       {"softcallerid", UMODE_SCALLERID        },
        {"deaf",        UMODE_DEAF      },
        {"invisible",   UMODE_INVISIBLE },
        {"locops",      UMODE_LOCOPS    },
@@ -306,6 +307,7 @@ static struct mode_table umode_table[] = {
        {"noctcp",      UMODE_NOCTCP    },
        {"noinvite",    UMODE_NOINVITE  },
        {"bot",         UMODE_BOT       },
+       {"override",    UMODE_OVERRIDE  },
        {NULL, 0}
 };
 
@@ -569,6 +571,10 @@ 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);
                yy_tmpoper->privset = yy_oper->privset;
 
 #ifdef HAVE_LIBCRYPTO
@@ -698,6 +704,12 @@ conf_set_oper_snomask(void *data)
        yy_oper->snomask = parse_snobuf_to_mask(0, (const char *) data);
 }
 
+static void
+conf_set_oper_vhost(void *data)
+{
+       yy_oper->vhost = rb_strdup((char *) data);
+}
+
 static int
 conf_begin_class(struct TopConf *tc)
 {
@@ -2064,6 +2076,7 @@ static struct ConfEntry conf_operator_table[] =
        { "umodes",     CF_STRING | CF_FLIST, conf_set_oper_umodes,     0, NULL },
        { "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 },
        { "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 },
@@ -2139,6 +2152,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 },
        { "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 },
@@ -2177,6 +2191,7 @@ static struct ConfEntry conf_general_table[] =
        { "no_oper_flood",      CF_YESNO, NULL, 0, &ConfigFileEntry.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 },
        { "pace_wait",          CF_TIME,  NULL, 0, &ConfigFileEntry.pace_wait           },
        { "pace_wait_simple",   CF_TIME,  NULL, 0, &ConfigFileEntry.pace_wait_simple    },
        { "ping_cookie",        CF_YESNO, NULL, 0, &ConfigFileEntry.ping_cookie         },
@@ -2203,6 +2218,8 @@ static struct ConfEntry conf_general_table[] =
 
 static struct ConfEntry conf_channel_table[] =
 {
+       { "autochanmodes",      CF_QSTRING, NULL, 0, &ConfigChannel.autochanmodes       },
+       { "exemptchanops",      CF_QSTRING, NULL, 0, &ConfigChannel.exemptchanops       },
        { "default_split_user_count",   CF_INT,  NULL, 0, &ConfigChannel.default_split_user_count        },
        { "default_split_server_count", CF_INT,  NULL, 0, &ConfigChannel.default_split_server_count },
        { "burst_topicwho",     CF_YESNO, NULL, 0, &ConfigChannel.burst_topicwho        },
@@ -2215,11 +2232,24 @@ static struct ConfEntry conf_channel_table[] =
        { "no_create_on_split", CF_YESNO, NULL, 0, &ConfigChannel.no_create_on_split    },
        { "no_join_on_split",   CF_YESNO, NULL, 0, &ConfigChannel.no_join_on_split      },
        { "only_ascii_channels", CF_YESNO, NULL, 0, &ConfigChannel.only_ascii_channels },
+       { "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_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   },
+       { "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        },
+       { "exempt_cmode_T",     CF_YESNO, NULL, 0, &ConfigChannel.exempt_cmode_T        },
+       { "exempt_cmode_N",     CF_YESNO, NULL, 0, &ConfigChannel.exempt_cmode_N        },
+       { "exempt_cmode_G",     CF_YESNO, NULL, 0, &ConfigChannel.exempt_cmode_G        },
+       { "exempt_cmode_K",     CF_YESNO, NULL, 0, &ConfigChannel.exempt_cmode_K        },
        { "\0",                 0,        NULL, 0, NULL }
 };