]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/newconf.c
MyMalloc -> rb_malloc
[irc/rqf/shadowircd.git] / src / newconf.c
index bf33a0f1353675dd061e8225e23481a4be315a96..eddeeff674beedcb41e857cf3fe4342dce86d731 100644 (file)
@@ -9,9 +9,7 @@
 #include <openssl/rsa.h>
 #endif
 
-#include "memory.h"
 #include "newconf.h"
-#include "tools.h"
 #include "ircd_defs.h"
 #include "sprintf_irc.h"
 #include "common.h"
@@ -25,7 +23,6 @@
 #include "listener.h"
 #include "hostmask.h"
 #include "s_serv.h"
-#include "event.h"
 #include "hash.h"
 #include "cache.h"
 #include "ircd.h"
@@ -37,7 +34,7 @@
 struct TopConf *conf_cur_block;
 static char *conf_cur_block_name;
 
-static dlink_list conf_items;
+static rb_dlink_list conf_items;
 
 static struct ConfItem *yy_aconf = NULL;
 
@@ -46,10 +43,10 @@ static struct Class *yy_class = NULL;
 static struct remote_conf *yy_shared = NULL;
 static struct server_conf *yy_server = NULL;
 
-static dlink_list yy_aconf_list;
-static dlink_list yy_oper_list;
-static dlink_list yy_shared_list;
-static dlink_list yy_cluster_list;
+static rb_dlink_list yy_aconf_list;
+static rb_dlink_list yy_oper_list;
+static rb_dlink_list yy_shared_list;
+static rb_dlink_list yy_cluster_list;
 static struct oper_conf *yy_oper = NULL;
 
 static struct alias_entry *yy_alias = NULL;
@@ -83,24 +80,24 @@ add_top_conf(const char *name, int (*sfunc) (struct TopConf *),
 {
        struct TopConf *tc;
 
-       tc = MyMalloc(sizeof(struct TopConf));
+       tc = rb_malloc(sizeof(struct TopConf));
 
        tc->tc_name = name;
        tc->tc_sfunc = sfunc;
        tc->tc_efunc = efunc;
        tc->tc_entries = items;
 
-       dlinkAddAlloc(tc, &conf_items);
+       rb_dlinkAddAlloc(tc, &conf_items);
        return 0;
 }
 
 struct TopConf *
 find_top_conf(const char *name)
 {
-       dlink_node *d;
+       rb_dlink_node *d;
        struct TopConf *tc;
 
-       DLINK_FOREACH(d, conf_items.head)
+       RB_DLINK_FOREACH(d, conf_items.head)
        {
                tc = d->data;
                if(strcasecmp(tc->tc_name, name) == 0)
@@ -115,7 +112,7 @@ struct ConfEntry *
 find_conf_item(const struct TopConf *top, const char *name)
 {
        struct ConfEntry *cf;
-       dlink_node *d;
+       rb_dlink_node *d;
 
        if(top->tc_entries)
        {
@@ -130,7 +127,7 @@ find_conf_item(const struct TopConf *top, const char *name)
                }
        }
 
-       DLINK_FOREACH(d, top->tc_items.head)
+       RB_DLINK_FOREACH(d, top->tc_items.head)
        {
                cf = d->data;
                if(strcasecmp(cf->cf_name, name) == 0)
@@ -144,16 +141,16 @@ int
 remove_top_conf(char *name)
 {
        struct TopConf *tc;
-       dlink_node *ptr;
+       rb_dlink_node *ptr;
 
        if((tc = find_top_conf(name)) == NULL)
                return -1;
 
-       if((ptr = dlinkFind(tc, &conf_items)) == NULL)
+       if((ptr = rb_dlinkFind(tc, &conf_items)) == NULL)
                return -1;
 
-       dlinkDestroy(ptr, &conf_items);
-       MyFree(tc);
+       rb_dlinkDestroy(ptr, &conf_items);
+       rb_free(tc);
 
        return 0;
 }
@@ -225,7 +222,7 @@ conf_set_serverinfo_network_name(void *data)
        if((p = strchr((char *) data, ' ')))
                *p = '\0';
 
-       MyFree(ServerInfo.network_name);
+       rb_free(ServerInfo.network_name);
        DupString(ServerInfo.network_name, (char *) data);
 }
 
@@ -271,7 +268,7 @@ conf_set_modules_module(void *data)
 
        load_one_module((char *) data, 0);
 
-       MyFree(m_bn);
+       rb_free(m_bn);
 #else
        conf_report_error("Ignoring modules::module -- loadable module support not present.");
 #endif
@@ -307,7 +304,7 @@ static struct mode_table umode_table[] = {
        {NULL, 0}
 };
 
-static struct mode_table flag_table[] = {
+static struct mode_table oper_table[] = {
        {"encrypted",           OPER_ENCRYPTED          },
        {"local_kill",          OPER_LOCKILL            },
        {"global_kill",         OPER_GLOBKILL|OPER_LOCKILL      },
@@ -326,6 +323,7 @@ static struct mode_table flag_table[] = {
        {"oper_spy",            OPER_SPY                },
        {"hidden_oper",         OPER_INVIS              },
        {"remoteban",           OPER_REMOTEBAN          },
+       {"mass_notice",         OPER_MASSNOTICE         },
        {NULL, 0}
 };
 
@@ -450,8 +448,8 @@ set_modes_from_table(int *modes, const char *whatis, struct mode_table *tab, con
 static int
 conf_begin_oper(struct TopConf *tc)
 {
-       dlink_node *ptr;
-       dlink_node *next_ptr;
+       rb_dlink_node *ptr;
+       rb_dlink_node *next_ptr;
 
        if(yy_oper != NULL)
        {
@@ -459,14 +457,14 @@ conf_begin_oper(struct TopConf *tc)
                yy_oper = NULL;
        }
 
-       DLINK_FOREACH_SAFE(ptr, next_ptr, yy_oper_list.head)
+       RB_DLINK_FOREACH_SAFE(ptr, next_ptr, yy_oper_list.head)
        {
                free_oper_conf(ptr->data);
-               dlinkDestroy(ptr, &yy_oper_list);
+               rb_dlinkDestroy(ptr, &yy_oper_list);
        }
 
        yy_oper = make_oper_conf();
-       yy_oper->flags |= OPER_ENCRYPTED|OPER_RESV|OPER_OPERWALL|OPER_REMOTEBAN;
+       yy_oper->flags |= OPER_ENCRYPTED|OPER_RESV|OPER_OPERWALL|OPER_REMOTEBAN|OPER_MASSNOTICE;
 
        return 0;
 }
@@ -475,8 +473,8 @@ static int
 conf_end_oper(struct TopConf *tc)
 {
        struct oper_conf *yy_tmpoper;
-       dlink_node *ptr;
-       dlink_node *next_ptr;
+       rb_dlink_node *ptr;
+       rb_dlink_node *next_ptr;
 
        if(conf_cur_block_name != NULL)
        {
@@ -507,7 +505,7 @@ conf_end_oper(struct TopConf *tc)
         * and host in, yy_oper contains the rest of the information which
         * we need to copy into each element in yy_oper_list
         */
-       DLINK_FOREACH_SAFE(ptr, next_ptr, yy_oper_list.head)
+       RB_DLINK_FOREACH_SAFE(ptr, next_ptr, yy_oper_list.head)
        {
                yy_tmpoper = ptr->data;
 
@@ -551,7 +549,7 @@ conf_end_oper(struct TopConf *tc)
 #endif
 
                /* all is ok, put it on oper_conf_list */
-               dlinkMoveNode(ptr, &yy_oper_list, &oper_conf_list);
+               rb_dlinkMoveNode(ptr, &yy_oper_list, &oper_conf_list);
        }
 
        free_oper_conf(yy_oper);
@@ -565,7 +563,7 @@ conf_set_oper_flags(void *data)
 {
        conf_parm_t *args = data;
 
-       set_modes_from_table(&yy_oper->flags, "flag", flag_table, args);
+       set_modes_from_table(&yy_oper->flags, "flag", oper_table, args);
 }
 
 static void
@@ -598,7 +596,7 @@ conf_set_oper_user(void *data)
                return;
        }
 
-       dlinkAddAlloc(yy_tmpoper, &yy_oper_list);
+       rb_dlinkAddAlloc(yy_tmpoper, &yy_oper_list);
 }
 
 static void
@@ -607,7 +605,7 @@ conf_set_oper_password(void *data)
        if(yy_oper->passwd)
        {
                memset(yy_oper->passwd, 0, strlen(yy_oper->passwd));
-               MyFree(yy_oper->passwd);
+               rb_free(yy_oper->passwd);
        }
 
        DupString(yy_oper->passwd, (char *) data);
@@ -617,7 +615,7 @@ static void
 conf_set_oper_rsa_public_key_file(void *data)
 {
 #ifdef HAVE_LIBCRYPTO
-       MyFree(yy_oper->rsa_pubkey_file);
+       rb_free(yy_oper->rsa_pubkey_file);
        DupString(yy_oper->rsa_pubkey_file, (char *) data);
 #else
        conf_report_error("Warning -- ignoring rsa_public_key_file (OpenSSL support not available");
@@ -733,7 +731,7 @@ static char *listener_address;
 static int
 conf_begin_listen(struct TopConf *tc)
 {
-       MyFree(listener_address);
+       rb_free(listener_address);
        listener_address = NULL;
        return 0;
 }
@@ -741,7 +739,7 @@ conf_begin_listen(struct TopConf *tc)
 static int
 conf_end_listen(struct TopConf *tc)
 {
-       MyFree(listener_address);
+       rb_free(listener_address);
        listener_address = NULL;
        return 0;
 }
@@ -785,23 +783,23 @@ conf_set_listen_port(void *data)
 static void
 conf_set_listen_address(void *data)
 {
-       MyFree(listener_address);
+       rb_free(listener_address);
        DupString(listener_address, data);
 }
 
 static int
 conf_begin_auth(struct TopConf *tc)
 {
-       dlink_node *ptr;
-       dlink_node *next_ptr;
+       rb_dlink_node *ptr;
+       rb_dlink_node *next_ptr;
 
        if(yy_aconf)
                free_conf(yy_aconf);
 
-       DLINK_FOREACH_SAFE(ptr, next_ptr, yy_aconf_list.head)
+       RB_DLINK_FOREACH_SAFE(ptr, next_ptr, yy_aconf_list.head)
        {
                free_conf(ptr->data);
-               dlinkDestroy(ptr, &yy_aconf_list);
+               rb_dlinkDestroy(ptr, &yy_aconf_list);
        }
 
        yy_aconf = make_conf();
@@ -814,8 +812,8 @@ static int
 conf_end_auth(struct TopConf *tc)
 {
        struct ConfItem *yy_tmp;
-       dlink_node *ptr;
-       dlink_node *next_ptr;
+       rb_dlink_node *ptr;
+       rb_dlink_node *next_ptr;
 
        if(EmptyString(yy_aconf->name))
                DupString(yy_aconf->name, "NOMATCH");
@@ -833,7 +831,7 @@ conf_end_auth(struct TopConf *tc)
        conf_add_class_to_conf(yy_aconf);
        add_conf_by_address(yy_aconf->host, CONF_CLIENT, yy_aconf->user, yy_aconf);
 
-       DLINK_FOREACH_SAFE(ptr, next_ptr, yy_aconf_list.head)
+       RB_DLINK_FOREACH_SAFE(ptr, next_ptr, yy_aconf_list.head)
        {
                yy_tmp = ptr->data;
 
@@ -855,7 +853,7 @@ conf_end_auth(struct TopConf *tc)
                conf_add_class_to_conf(yy_tmp);
 
                add_conf_by_address(yy_tmp->host, CONF_CLIENT, yy_tmp->user, yy_tmp);
-               dlinkDestroy(ptr, &yy_aconf_list);
+               rb_dlinkDestroy(ptr, &yy_aconf_list);
        }
 
        yy_aconf = NULL;
@@ -891,7 +889,7 @@ conf_set_auth_user(void *data)
        }
 
        if(yy_aconf != yy_tmp)
-               dlinkAddAlloc(yy_tmp, &yy_aconf_list);
+               rb_dlinkAddAlloc(yy_tmp, &yy_aconf_list);
 }
 
 static void
@@ -899,7 +897,7 @@ conf_set_auth_passwd(void *data)
 {
        if(yy_aconf->passwd)
                memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
-       MyFree(yy_aconf->passwd);
+       rb_free(yy_aconf->passwd);
        DupString(yy_aconf->passwd, data);
 }
 
@@ -959,7 +957,7 @@ conf_set_auth_spoof(void *data)
                return;
        }
 
-       MyFree(yy_aconf->name);
+       rb_free(yy_aconf->name);
        DupString(yy_aconf->name, data);
        yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
 }
@@ -976,7 +974,7 @@ static void
 conf_set_auth_redir_serv(void *data)
 {
        yy_aconf->flags |= CONF_FLAGS_REDIR;
-       MyFree(yy_aconf->name);
+       rb_free(yy_aconf->name);
        DupString(yy_aconf->name, data);
 }
 
@@ -992,7 +990,7 @@ conf_set_auth_redir_port(void *data)
 static void
 conf_set_auth_class(void *data)
 {
-       MyFree(yy_aconf->className);
+       rb_free(yy_aconf->className);
        DupString(yy_aconf->className, data);
 }
 
@@ -1003,12 +1001,12 @@ conf_set_auth_class(void *data)
 static int
 conf_cleanup_shared(struct TopConf *tc)
 {
-       dlink_node *ptr, *next_ptr;
+       rb_dlink_node *ptr, *next_ptr;
 
-       DLINK_FOREACH_SAFE(ptr, next_ptr, yy_shared_list.head)
+       RB_DLINK_FOREACH_SAFE(ptr, next_ptr, yy_shared_list.head)
        {
                free_remote_conf(ptr->data);
-               dlinkDestroy(ptr, &yy_shared_list);
+               rb_dlinkDestroy(ptr, &yy_shared_list);
        }
 
        if(yy_shared != NULL)
@@ -1071,7 +1069,7 @@ conf_set_shared_oper(void *data)
        else
                DupString(yy_shared->username, username);
 
-       dlinkAddAlloc(yy_shared, &yy_shared_list);
+       rb_dlinkAddAlloc(yy_shared, &yy_shared_list);
        yy_shared = NULL;
 }
 
@@ -1080,20 +1078,20 @@ conf_set_shared_flags(void *data)
 {
        conf_parm_t *args = data;
        int flags = 0;
-       dlink_node *ptr, *next_ptr;
+       rb_dlink_node *ptr, *next_ptr;
 
        if(yy_shared != NULL)
                free_remote_conf(yy_shared);
 
        set_modes_from_table(&flags, "flag", shared_table, args);
 
-       DLINK_FOREACH_SAFE(ptr, next_ptr, yy_shared_list.head)
+       RB_DLINK_FOREACH_SAFE(ptr, next_ptr, yy_shared_list.head)
        {
                yy_shared = ptr->data;
 
                yy_shared->flags = flags;
-               dlinkDestroy(ptr, &yy_shared_list);
-               dlinkAddTail(yy_shared, &yy_shared->node, &shared_conf_list);
+               rb_dlinkDestroy(ptr, &yy_shared_list);
+               rb_dlinkAddTail(yy_shared, &yy_shared->node, &shared_conf_list);
        }
 
        yy_shared = NULL;
@@ -1107,6 +1105,7 @@ conf_begin_connect(struct TopConf *tc)
 
        yy_server = make_server_conf();
        yy_server->port = PORTNUM;
+       yy_server->flags |= SERVER_TB;
 
        if(conf_cur_block_name != NULL)
                DupString(yy_server->name, conf_cur_block_name);
@@ -1153,7 +1152,7 @@ conf_end_connect(struct TopConf *tc)
 #endif
 
        add_server_conf(yy_server);
-       dlinkAdd(yy_server, &yy_server->node, &server_conf_list);
+       rb_dlinkAdd(yy_server, &yy_server->node, &server_conf_list);
 
        yy_server = NULL;
        return 0;
@@ -1162,7 +1161,7 @@ conf_end_connect(struct TopConf *tc)
 static void
 conf_set_connect_host(void *data)
 {
-       MyFree(yy_server->host);
+       rb_free(yy_server->host);
        DupString(yy_server->host, data);
        if (strchr(yy_server->host, ':'))
                yy_server->aftype = AF_INET6;
@@ -1187,7 +1186,7 @@ conf_set_connect_send_password(void *data)
        if(yy_server->spasswd)
        {
                memset(yy_server->spasswd, 0, strlen(yy_server->spasswd));
-               MyFree(yy_server->spasswd);
+               rb_free(yy_server->spasswd);
        }
 
        DupString(yy_server->spasswd, data);
@@ -1199,7 +1198,7 @@ conf_set_connect_accept_password(void *data)
        if(yy_server->passwd)
        {
                memset(yy_server->passwd, 0, strlen(yy_server->passwd));
-               MyFree(yy_server->passwd);
+               rb_free(yy_server->passwd);
        }
        DupString(yy_server->passwd, data);
 }
@@ -1254,7 +1253,7 @@ conf_set_connect_hub_mask(void *data)
 
        DupString(yy_hub->host, data);
        DupString(yy_hub->server, yy_server->name);
-       dlinkAdd(yy_hub, &yy_hub->node, &hubleaf_conf_list);
+       rb_dlinkAdd(yy_hub, &yy_hub->node, &hubleaf_conf_list);
 }
 
 static void
@@ -1270,13 +1269,13 @@ conf_set_connect_leaf_mask(void *data)
 
        DupString(yy_leaf->host, data);
        DupString(yy_leaf->server, yy_server->name);
-       dlinkAdd(yy_leaf, &yy_leaf->node, &hubleaf_conf_list);
+       rb_dlinkAdd(yy_leaf, &yy_leaf->node, &hubleaf_conf_list);
 }
 
 static void
 conf_set_connect_class(void *data)
 {
-       MyFree(yy_server->class_name);
+       rb_free(yy_server->class_name);
        DupString(yy_server->class_name, data);
 }
 
@@ -1301,12 +1300,12 @@ conf_set_exempt_ip(void *data)
 static int
 conf_cleanup_cluster(struct TopConf *tc)
 {
-       dlink_node *ptr, *next_ptr;
+       rb_dlink_node *ptr, *next_ptr;
 
-       DLINK_FOREACH_SAFE(ptr, next_ptr, yy_cluster_list.head)
+       RB_DLINK_FOREACH_SAFE(ptr, next_ptr, yy_cluster_list.head)
        {
                free_remote_conf(ptr->data);
-               dlinkDestroy(ptr, &yy_cluster_list);
+               rb_dlinkDestroy(ptr, &yy_cluster_list);
        }
 
        if(yy_shared != NULL)
@@ -1326,7 +1325,7 @@ conf_set_cluster_name(void *data)
 
        yy_shared = make_remote_conf();
        DupString(yy_shared->server, data);
-       dlinkAddAlloc(yy_shared, &yy_cluster_list);
+       rb_dlinkAddAlloc(yy_shared, &yy_cluster_list);
 
        yy_shared = NULL;
 }
@@ -1336,19 +1335,19 @@ conf_set_cluster_flags(void *data)
 {
        conf_parm_t *args = data;
        int flags = 0;
-       dlink_node *ptr, *next_ptr;
+       rb_dlink_node *ptr, *next_ptr;
 
        if(yy_shared != NULL)
                free_remote_conf(yy_shared);
 
        set_modes_from_table(&flags, "flag", cluster_table, args);
 
-       DLINK_FOREACH_SAFE(ptr, next_ptr, yy_cluster_list.head)
+       RB_DLINK_FOREACH_SAFE(ptr, next_ptr, yy_cluster_list.head)
        {
                yy_shared = ptr->data;
                yy_shared->flags = flags;
-               dlinkAddTail(yy_shared, &yy_shared->node, &cluster_conf_list);
-               dlinkDestroy(ptr, &yy_cluster_list);
+               rb_dlinkAddTail(yy_shared, &yy_shared->node, &cluster_conf_list);
+               rb_dlinkDestroy(ptr, &yy_cluster_list);
        }
 
        yy_shared = NULL;
@@ -1535,9 +1534,9 @@ static int
 conf_begin_service(struct TopConf *tc)
 {
        struct Client *target_p;
-       dlink_node *ptr;
+       rb_dlink_node *ptr;
 
-       DLINK_FOREACH(ptr, global_serv_list.head)
+       RB_DLINK_FOREACH(ptr, global_serv_list.head)
        {
                target_p = ptr->data;
 
@@ -1574,7 +1573,7 @@ conf_set_service_name(void *data)
        }
 
        DupString(tmp, data);
-       dlinkAddAlloc(tmp, &service_list);
+       rb_dlinkAddAlloc(tmp, &service_list);
 
        if((target_p = find_server(NULL, tmp)))
                target_p->flags |= FLAGS_SERVICE;
@@ -1583,7 +1582,7 @@ conf_set_service_name(void *data)
 static int
 conf_begin_alias(struct TopConf *tc)
 {
-       yy_alias = MyMalloc(sizeof(struct alias_entry));
+       yy_alias = rb_malloc(sizeof(struct alias_entry));
 
        if (conf_cur_block_name != NULL)
                DupString(yy_alias->name, conf_cur_block_name);
@@ -1604,7 +1603,7 @@ conf_end_alias(struct TopConf *tc)
        {
                conf_report_error("Ignoring alias -- must have a name.");
 
-               MyFree(yy_alias);
+               rb_free(yy_alias);
 
                return -1;
        }
@@ -1613,7 +1612,7 @@ conf_end_alias(struct TopConf *tc)
        {
                conf_report_error("Ignoring alias -- must have a target.");
 
-               MyFree(yy_alias);
+               rb_free(yy_alias);
 
                return -1;
        }
@@ -1658,8 +1657,8 @@ conf_set_blacklist_reason(void *data)
        if (yy_blacklist_host && yy_blacklist_reason)
        {
                new_blacklist(yy_blacklist_host, yy_blacklist_reason);
-               MyFree(yy_blacklist_host);
-               MyFree(yy_blacklist_reason);
+               rb_free(yy_blacklist_host);
+               rb_free(yy_blacklist_reason);
                yy_blacklist_host = NULL;
                yy_blacklist_reason = NULL;
        }
@@ -1715,7 +1714,7 @@ conf_end_block(struct TopConf *tc)
        if(tc->tc_efunc)
                return tc->tc_efunc(tc);
 
-       MyFree(conf_cur_block_name);
+       rb_free(conf_cur_block_name);
        return 0;
 }
 
@@ -1734,7 +1733,7 @@ conf_set_generic_string(void *data, int len, void *location)
        if(len && strlen(input) > len)
                input[len] = '\0';
 
-       MyFree(*loc);
+       rb_free(*loc);
        DupString(*loc, input);
 }
 
@@ -1847,14 +1846,14 @@ add_conf_item(const char *topconf, const char *name, int type, void (*func) (voi
        if((cf = find_conf_item(tc, name)) != NULL)
                return -1;
 
-       cf = MyMalloc(sizeof(struct ConfEntry));
+       cf = rb_malloc(sizeof(struct ConfEntry));
 
        cf->cf_name = name;
        cf->cf_type = type;
        cf->cf_func = func;
        cf->cf_arg = NULL;
 
-       dlinkAddAlloc(cf, &tc->tc_items);
+       rb_dlinkAddAlloc(cf, &tc->tc_items);
 
        return 0;
 }
@@ -1864,7 +1863,7 @@ remove_conf_item(const char *topconf, const char *name)
 {
        struct TopConf *tc;
        struct ConfEntry *cf;
-       dlink_node *ptr;
+       rb_dlink_node *ptr;
 
        if((tc = find_top_conf(topconf)) == NULL)
                return -1;
@@ -1872,11 +1871,11 @@ remove_conf_item(const char *topconf, const char *name)
        if((cf = find_conf_item(tc, name)) == NULL)
                return -1;
 
-       if((ptr = dlinkFind(cf, &tc->tc_items)) == NULL)
+       if((ptr = rb_dlinkFind(cf, &tc->tc_items)) == NULL)
                return -1;
 
-       dlinkDestroy(ptr, &tc->tc_items);
-       MyFree(cf);
+       rb_dlinkDestroy(ptr, &tc->tc_items);
+       rb_free(cf);
 
        return 0;
 }
@@ -2018,7 +2017,6 @@ static struct ConfEntry conf_general_table[] =
        { "gline_min_cidr6",    CF_INT,   NULL, 0, &ConfigFileEntry.gline_min_cidr6     },
        { "gline_time",         CF_TIME,  NULL, 0, &ConfigFileEntry.gline_time          },
        { "global_snotices",    CF_YESNO, NULL, 0, &ConfigFileEntry.global_snotices     },
-       { "idletime",           CF_TIME,  NULL, 0, &ConfigFileEntry.idletime            },
        { "hide_spoof_ips",     CF_YESNO, NULL, 0, &ConfigFileEntry.hide_spoof_ips      },
        { "dline_with_reason",  CF_YESNO, NULL, 0, &ConfigFileEntry.dline_with_reason   },
        { "kline_with_reason",  CF_YESNO, NULL, 0, &ConfigFileEntry.kline_with_reason   },