]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/s_newconf.c
ok, trying to work on blockheap's stuff
[irc/rqf/shadowircd.git] / src / s_newconf.c
index 6a0d2ff48b0dffa452895ce2b74811d1cc7c203b..8fa1b0dde67184bcd608b511261c032d7313d0c5 100644 (file)
 #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"
 
@@ -60,9 +56,9 @@ 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;
+static rb_bh *nd_heap = NULL;
 
 static void expire_temp_rxlines(void *unused);
 static void expire_nd_entries(void *unused);
@@ -71,7 +67,7 @@ void
 init_s_newconf(void)
 {
        tgchange_tree = New_Patricia(PATRICIA_BITS);
-       nd_heap = BlockHeapCreate(sizeof(struct nd_entry), ND_HEAP_SIZE);
+       nd_heap = rb_bh_create(sizeof(struct nd_entry), ND_HEAP_SIZE);
        eventAddIsh("expire_nd_entries", expire_nd_entries, NULL, 30);
        eventAddIsh("expire_temp_rxlines", expire_temp_rxlines, NULL, 60);
 }
@@ -83,32 +79,32 @@ clear_s_newconf(void)
        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 */
                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)
        {
                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)
        {
                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);
                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;
 
@@ -128,7 +124,7 @@ clear_s_newconf_bans(void)
        struct ConfItem *aconf;
        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;
 
@@ -139,7 +135,7 @@ clear_s_newconf_bans(void)
                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;
 
@@ -157,7 +153,7 @@ clear_s_newconf_bans(void)
 struct remote_conf *
 make_remote_conf(void)
 {
-       struct remote_conf *remote_p = MyMalloc(sizeof(struct remote_conf));
+       struct remote_conf *remote_p = rb_malloc(sizeof(struct remote_conf));
        return remote_p;
 }
 
@@ -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
@@ -181,7 +177,7 @@ find_shared_conf(const char *username, const char *host,
        struct remote_conf *shared_p;
        rb_dlink_node *ptr;
 
-       DLINK_FOREACH(ptr, shared_conf_list.head)
+       RB_DLINK_FOREACH(ptr, shared_conf_list.head)
        {
                shared_p = ptr->data;
 
@@ -231,7 +227,7 @@ cluster_generic(struct Client *source_p, const char *command,
        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;
 
@@ -250,7 +246,7 @@ cluster_generic(struct Client *source_p, const char *command,
 struct oper_conf *
 make_oper_conf(void)
 {
-       struct oper_conf *oper_p = MyMalloc(sizeof(struct oper_conf));
+       struct oper_conf *oper_p = rb_malloc(sizeof(struct oper_conf));
        return oper_p;
 }
 
@@ -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 *
@@ -292,7 +288,7 @@ find_oper_conf(const char *username, const char *host, const char *locip, const
 
        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;
 
@@ -373,7 +369,7 @@ get_oper_privs(int flags)
 struct server_conf *
 make_server_conf(void)
 {
-       struct server_conf *server_p = MyMalloc(sizeof(struct server_conf));
+       struct server_conf *server_p = rb_malloc(sizeof(struct server_conf));
        server_p->aftype = AF_INET;
        return server_p;
 }
@@ -388,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
@@ -408,7 +404,7 @@ add_server_conf(struct server_conf *server_p)
 {
        if(EmptyString(server_p->class_name))
        {
-               DupString(server_p->class_name, "default");
+               server_p->class_name = rb_strdup("default");
                server_p->class = default_class;
                return;
        }
@@ -420,8 +416,8 @@ 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);
-               DupString(server_p->class_name, "default");
+               rb_free(server_p->class_name);
+               server_p->class_name = rb_strdup("default");
        }
 
        if(strchr(server_p->host, '*') || strchr(server_p->host, '?'))
@@ -434,7 +430,7 @@ find_server_conf(const char *name)
        struct server_conf *server_p;
        rb_dlink_node *ptr;
 
-       DLINK_FOREACH(ptr, server_conf_list.head)
+       RB_DLINK_FOREACH(ptr, server_conf_list.head)
        {
                server_p = ptr->data;
 
@@ -516,7 +512,7 @@ find_xline(const char *gecos, int counter)
        struct ConfItem *aconf;
        rb_dlink_node *ptr;
 
-       DLINK_FOREACH(ptr, xline_conf_list.head)
+       RB_DLINK_FOREACH(ptr, xline_conf_list.head)
        {
                aconf = ptr->data;
 
@@ -537,7 +533,7 @@ find_xline_mask(const char *gecos)
        struct ConfItem *aconf;
        rb_dlink_node *ptr;
 
-       DLINK_FOREACH(ptr, xline_conf_list.head)
+       RB_DLINK_FOREACH(ptr, xline_conf_list.head)
        {
                aconf = ptr->data;
 
@@ -554,7 +550,7 @@ find_nick_resv(const char *name)
        struct ConfItem *aconf;
        rb_dlink_node *ptr;
 
-       DLINK_FOREACH(ptr, resv_conf_list.head)
+       RB_DLINK_FOREACH(ptr, resv_conf_list.head)
        {
                aconf = ptr->data;
 
@@ -574,7 +570,7 @@ find_nick_resv_mask(const char *name)
        struct ConfItem *aconf;
        rb_dlink_node *ptr;
 
-       DLINK_FOREACH(ptr, resv_conf_list.head)
+       RB_DLINK_FOREACH(ptr, resv_conf_list.head)
        {
                aconf = ptr->data;
 
@@ -697,7 +693,7 @@ expire_temp_rxlines(void *unused)
        {
                aconf = ptr->data;
 
-               if(aconf->hold && aconf->hold <= CurrentTime)
+               if(aconf->hold && aconf->hold <= rb_current_time())
                {
                        if(ConfigFileEntry.tkline_expire_notices)
                                sendto_realops_snomask(SNO_GENERAL, L_ALL,
@@ -710,11 +706,11 @@ expire_temp_rxlines(void *unused)
        }
        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;
 
-               if(aconf->hold && aconf->hold <= CurrentTime)
+               if(aconf->hold && aconf->hold <= rb_current_time())
                {
                        if(ConfigFileEntry.tkline_expire_notices)
                                sendto_realops_snomask(SNO_GENERAL, L_ALL,
@@ -725,11 +721,11 @@ expire_temp_rxlines(void *unused)
                }
        }
 
-       DLINK_FOREACH_SAFE(ptr, next_ptr, xline_conf_list.head)
+       RB_DLINK_FOREACH_SAFE(ptr, next_ptr, xline_conf_list.head)
        {
                aconf = ptr->data;
 
-               if(aconf->hold && aconf->hold <= CurrentTime)
+               if(aconf->hold && aconf->hold <= rb_current_time())
                {
                        if(ConfigFileEntry.tkline_expire_notices)
                                sendto_realops_snomask(SNO_GENERAL, L_ALL,
@@ -755,10 +751,10 @@ add_nd_entry(const char *name)
        if(irc_dictionary_find(nd_dict, name) != NULL)
                return;
 
-       nd = BlockHeapAlloc(nd_heap);
+       nd = rb_bh_alloc(nd_heap);
        
        strlcpy(nd->name, name, sizeof(nd->name));
-       nd->expire = CurrentTime + ConfigFileEntry.nick_delay;
+       nd->expire = rb_current_time() + ConfigFileEntry.nick_delay;
 
        /* this list is ordered */
        rb_dlinkAddTail(nd, &nd->lnode, &nd_list);
@@ -772,7 +768,7 @@ free_nd_entry(struct nd_entry *nd)
        irc_dictionary_delete(nd_dict, nd->name);
 
        rb_dlinkDelete(&nd->lnode, &nd_list);
-       BlockHeapFree(nd_heap, nd);
+       rb_bh_free(nd_heap, nd);
 }
 
 void
@@ -782,14 +778,14 @@ expire_nd_entries(void *unused)
        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;
 
                /* this list is ordered - we can stop when we hit the first
                 * entry that doesnt expire..
                 */
-               if(nd->expire > CurrentTime)
+               if(nd->expire > rb_current_time())
                        return;
 
                free_nd_entry(nd);
@@ -805,14 +801,14 @@ add_tgchange(const char *host)
        if(find_tgchange(host))
                return;
 
-       target = MyMalloc(sizeof(tgchange));
+       target = rb_malloc(sizeof(tgchange));
        pnode = make_and_lookup(tgchange_tree, host);
 
        pnode->data = target;
        target->pnode = pnode;
 
-       DupString(target->ip, host);
-       target->expiry = CurrentTime + (60*60*12);
+       target->ip = rb_strdup(host);
+       target->expiry = rb_current_time() + (60*60*12);
 
        rb_dlinkAdd(target, &target->node, &tgchange_list);
 }