X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/1ebe6ffc92cae7ed80ac5b8dd6edfd330229ae43..90a3c35b295b07ebe3793bf5d3b882c3c1a5dc7c:/src/s_newconf.c diff --git a/src/s_newconf.c b/src/s_newconf.c index c93b57e..e67911b 100644 --- a/src/s_newconf.c +++ b/src/s_newconf.c @@ -37,30 +37,26 @@ #include "common.h" #include "s_conf.h" #include "s_newconf.h" -#include "tools.h" #include "client.h" -#include "memory.h" #include "s_serv.h" #include "send.h" #include "hostmask.h" #include "newconf.h" #include "hash.h" -#include "balloc.h" -#include "event.h" #include "sprintf_irc.h" #include "irc_dictionary.h" -dlink_list shared_conf_list; -dlink_list cluster_conf_list; -dlink_list oper_conf_list; -dlink_list hubleaf_conf_list; -dlink_list server_conf_list; -dlink_list xline_conf_list; -dlink_list resv_conf_list; /* nicks only! */ -dlink_list nd_list; /* nick delay */ -dlink_list tgchange_list; +rb_dlink_list shared_conf_list; +rb_dlink_list cluster_conf_list; +rb_dlink_list oper_conf_list; +rb_dlink_list hubleaf_conf_list; +rb_dlink_list server_conf_list; +rb_dlink_list xline_conf_list; +rb_dlink_list resv_conf_list; /* nicks only! */ +rb_dlink_list nd_list; /* nick delay */ +rb_dlink_list tgchange_list; -patricia_tree_t *tgchange_tree; +rb_patricia_tree_t *tgchange_tree; static BlockHeap *nd_heap = NULL; @@ -80,41 +76,41 @@ void clear_s_newconf(void) { struct server_conf *server_p; - dlink_node *ptr; - dlink_node *next_ptr; + rb_dlink_node *ptr; + rb_dlink_node *next_ptr; - DLINK_FOREACH_SAFE(ptr, next_ptr, shared_conf_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, shared_conf_list.head) { /* ptr here is ptr->data->node */ - dlinkDelete(ptr, &shared_conf_list); + rb_dlinkDelete(ptr, &shared_conf_list); free_remote_conf(ptr->data); } - DLINK_FOREACH_SAFE(ptr, next_ptr, cluster_conf_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, cluster_conf_list.head) { - dlinkDelete(ptr, &cluster_conf_list); + rb_dlinkDelete(ptr, &cluster_conf_list); free_remote_conf(ptr->data); } - DLINK_FOREACH_SAFE(ptr, next_ptr, hubleaf_conf_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, hubleaf_conf_list.head) { - dlinkDelete(ptr, &hubleaf_conf_list); + rb_dlinkDelete(ptr, &hubleaf_conf_list); free_remote_conf(ptr->data); } - DLINK_FOREACH_SAFE(ptr, next_ptr, oper_conf_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, oper_conf_list.head) { free_oper_conf(ptr->data); - dlinkDestroy(ptr, &oper_conf_list); + rb_dlinkDestroy(ptr, &oper_conf_list); } - DLINK_FOREACH_SAFE(ptr, next_ptr, server_conf_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, server_conf_list.head) { server_p = ptr->data; if(!server_p->servers) { - dlinkDelete(ptr, &server_conf_list); + rb_dlinkDelete(ptr, &server_conf_list); free_server_conf(ptr->data); } else @@ -126,9 +122,9 @@ void clear_s_newconf_bans(void) { struct ConfItem *aconf; - dlink_node *ptr, *next_ptr; + rb_dlink_node *ptr, *next_ptr; - DLINK_FOREACH_SAFE(ptr, next_ptr, xline_conf_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, xline_conf_list.head) { aconf = ptr->data; @@ -136,10 +132,10 @@ clear_s_newconf_bans(void) continue; free_conf(aconf); - dlinkDestroy(ptr, &xline_conf_list); + rb_dlinkDestroy(ptr, &xline_conf_list); } - DLINK_FOREACH_SAFE(ptr, next_ptr, resv_conf_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, resv_conf_list.head) { aconf = ptr->data; @@ -148,7 +144,7 @@ clear_s_newconf_bans(void) continue; free_conf(aconf); - dlinkDestroy(ptr, &resv_conf_list); + rb_dlinkDestroy(ptr, &resv_conf_list); } clear_resv_hash(); @@ -168,10 +164,10 @@ free_remote_conf(struct remote_conf *remote_p) if(remote_p == NULL) return; - MyFree(remote_p->username); - MyFree(remote_p->host); - MyFree(remote_p->server); - MyFree(remote_p); + rb_free(remote_p->username); + rb_free(remote_p->host); + rb_free(remote_p->server); + rb_free(remote_p); } int @@ -179,9 +175,9 @@ find_shared_conf(const char *username, const char *host, const char *server, int flags) { struct remote_conf *shared_p; - dlink_node *ptr; + rb_dlink_node *ptr; - DLINK_FOREACH(ptr, shared_conf_list.head) + RB_DLINK_FOREACH(ptr, shared_conf_list.head) { shared_p = ptr->data; @@ -225,13 +221,13 @@ cluster_generic(struct Client *source_p, const char *command, char buffer[BUFSIZE]; struct remote_conf *shared_p; va_list args; - dlink_node *ptr; + rb_dlink_node *ptr; va_start(args, format); ircvsnprintf(buffer, sizeof(buffer), format, args); va_end(args); - DLINK_FOREACH(ptr, cluster_conf_list.head) + RB_DLINK_FOREACH(ptr, cluster_conf_list.head) { shared_p = ptr->data; @@ -261,24 +257,24 @@ free_oper_conf(struct oper_conf *oper_p) if(oper_p == NULL) return; - MyFree(oper_p->username); - MyFree(oper_p->host); - MyFree(oper_p->name); + rb_free(oper_p->username); + rb_free(oper_p->host); + rb_free(oper_p->name); if(oper_p->passwd) { memset(oper_p->passwd, 0, strlen(oper_p->passwd)); - MyFree(oper_p->passwd); + rb_free(oper_p->passwd); } #ifdef HAVE_LIBCRYPTO - MyFree(oper_p->rsa_pubkey_file); + rb_free(oper_p->rsa_pubkey_file); if(oper_p->rsa_pubkey) RSA_free(oper_p->rsa_pubkey); #endif - MyFree(oper_p); + rb_free(oper_p); } struct oper_conf * @@ -288,11 +284,11 @@ find_oper_conf(const char *username, const char *host, const char *locip, const struct irc_sockaddr_storage ip, cip; char addr[HOSTLEN+1]; int bits, cbits; - dlink_node *ptr; + rb_dlink_node *ptr; parse_netmask(locip, (struct sockaddr *)&cip, &cbits); - DLINK_FOREACH(ptr, oper_conf_list.head) + RB_DLINK_FOREACH(ptr, oper_conf_list.head) { oper_p = ptr->data; @@ -344,6 +340,7 @@ static struct oper_flags oper_flagtable[] = { OPER_SPY, 'S', 's' }, { OPER_INVIS, 'P', 'p' }, { OPER_REMOTEBAN, 'B', 'b' }, + { OPER_MASSNOTICE, 'M', 'm' }, { 0, '\0', '\0' } }; @@ -387,19 +384,19 @@ free_server_conf(struct server_conf *server_p) if(!EmptyString(server_p->passwd)) { memset(server_p->passwd, 0, strlen(server_p->passwd)); - MyFree(server_p->passwd); + rb_free(server_p->passwd); } if(!EmptyString(server_p->spasswd)) { memset(server_p->spasswd, 0, strlen(server_p->spasswd)); - MyFree(server_p->spasswd); + rb_free(server_p->spasswd); } - MyFree(server_p->name); - MyFree(server_p->host); - MyFree(server_p->class_name); - MyFree(server_p); + rb_free(server_p->name); + rb_free(server_p->host); + rb_free(server_p->class_name); + rb_free(server_p); } void @@ -419,7 +416,7 @@ add_server_conf(struct server_conf *server_p) conf_report_error("Warning connect::class invalid for %s", server_p->name); - MyFree(server_p->class_name); + rb_free(server_p->class_name); DupString(server_p->class_name, "default"); } @@ -431,9 +428,9 @@ struct server_conf * find_server_conf(const char *name) { struct server_conf *server_p; - dlink_node *ptr; + rb_dlink_node *ptr; - DLINK_FOREACH(ptr, server_conf_list.head) + RB_DLINK_FOREACH(ptr, server_conf_list.head) { server_p = ptr->data; @@ -484,7 +481,7 @@ detach_server_conf(struct Client *client_p) if(MaxUsers(server_p->class) < 0 && CurrUsers(server_p->class) <= 0) free_class(server_p->class); - dlinkDelete(&server_p->node, &server_conf_list); + rb_dlinkDelete(&server_p->node, &server_conf_list); free_server_conf(server_p); } } @@ -513,9 +510,9 @@ struct ConfItem * find_xline(const char *gecos, int counter) { struct ConfItem *aconf; - dlink_node *ptr; + rb_dlink_node *ptr; - DLINK_FOREACH(ptr, xline_conf_list.head) + RB_DLINK_FOREACH(ptr, xline_conf_list.head) { aconf = ptr->data; @@ -534,9 +531,9 @@ struct ConfItem * find_xline_mask(const char *gecos) { struct ConfItem *aconf; - dlink_node *ptr; + rb_dlink_node *ptr; - DLINK_FOREACH(ptr, xline_conf_list.head) + RB_DLINK_FOREACH(ptr, xline_conf_list.head) { aconf = ptr->data; @@ -551,9 +548,9 @@ struct ConfItem * find_nick_resv(const char *name) { struct ConfItem *aconf; - dlink_node *ptr; + rb_dlink_node *ptr; - DLINK_FOREACH(ptr, resv_conf_list.head) + RB_DLINK_FOREACH(ptr, resv_conf_list.head) { aconf = ptr->data; @@ -571,9 +568,9 @@ struct ConfItem * find_nick_resv_mask(const char *name) { struct ConfItem *aconf; - dlink_node *ptr; + rb_dlink_node *ptr; - DLINK_FOREACH(ptr, resv_conf_list.head) + RB_DLINK_FOREACH(ptr, resv_conf_list.head) { aconf = ptr->data; @@ -688,8 +685,8 @@ static void expire_temp_rxlines(void *unused) { struct ConfItem *aconf; - dlink_node *ptr; - dlink_node *next_ptr; + rb_dlink_node *ptr; + rb_dlink_node *next_ptr; int i; HASH_WALK_SAFE(i, R_MAX, ptr, next_ptr, resvTable) @@ -704,12 +701,12 @@ expire_temp_rxlines(void *unused) aconf->name); free_conf(aconf); - dlinkDestroy(ptr, &resvTable[i]); + rb_dlinkDestroy(ptr, &resvTable[i]); } } HASH_WALK_END - DLINK_FOREACH_SAFE(ptr, next_ptr, resv_conf_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, resv_conf_list.head) { aconf = ptr->data; @@ -720,11 +717,11 @@ expire_temp_rxlines(void *unused) "Temporary RESV for [%s] expired", aconf->name); free_conf(aconf); - dlinkDestroy(ptr, &resv_conf_list); + rb_dlinkDestroy(ptr, &resv_conf_list); } } - DLINK_FOREACH_SAFE(ptr, next_ptr, xline_conf_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, xline_conf_list.head) { aconf = ptr->data; @@ -735,7 +732,7 @@ expire_temp_rxlines(void *unused) "Temporary X-line for [%s] expired", aconf->name); free_conf(aconf); - dlinkDestroy(ptr, &xline_conf_list); + rb_dlinkDestroy(ptr, &xline_conf_list); } } } @@ -743,7 +740,7 @@ expire_temp_rxlines(void *unused) unsigned long get_nd_count(void) { - return(dlink_list_length(&nd_list)); + return(rb_dlink_list_length(&nd_list)); } void @@ -760,7 +757,7 @@ add_nd_entry(const char *name) nd->expire = CurrentTime + ConfigFileEntry.nick_delay; /* this list is ordered */ - dlinkAddTail(nd, &nd->lnode, &nd_list); + rb_dlinkAddTail(nd, &nd->lnode, &nd_list); irc_dictionary_add(nd_dict, nd->name, nd); } @@ -770,7 +767,7 @@ free_nd_entry(struct nd_entry *nd) { irc_dictionary_delete(nd_dict, nd->name); - dlinkDelete(&nd->lnode, &nd_list); + rb_dlinkDelete(&nd->lnode, &nd_list); BlockHeapFree(nd_heap, nd); } @@ -778,10 +775,10 @@ void expire_nd_entries(void *unused) { struct nd_entry *nd; - dlink_node *ptr; - dlink_node *next_ptr; + rb_dlink_node *ptr; + rb_dlink_node *next_ptr; - DLINK_FOREACH_SAFE(ptr, next_ptr, nd_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, nd_list.head) { nd = ptr->data; @@ -813,7 +810,7 @@ add_tgchange(const char *host) DupString(target->ip, host); target->expiry = CurrentTime + (60*60*12); - dlinkAdd(target, &target->node, &tgchange_list); + rb_dlinkAdd(target, &target->node, &tgchange_list); } tgchange *