X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/965dfbd38aa28911e067c6b3afbb1cf7bb9036cc..8e43b0b4146cdbacec61e83e8b8251c0b5a090c9:/src/newconf.c diff --git a/src/newconf.c b/src/newconf.c index bf33a0f..eddeeff 100644 --- a/src/newconf.c +++ b/src/newconf.c @@ -9,9 +9,7 @@ #include #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 },