]> jfr.im git - solanum.git/blobdiff - src/channel.c
irc_string.h -> match.h, irc_string.h; includes changed
[solanum.git] / src / channel.c
index b742650f6f1c25c96483432da770556104725487..db8d327e1d19ec0dba34a21fe8c70e8efc7ac287 100644 (file)
@@ -30,8 +30,7 @@
 #include "common.h"
 #include "hash.h"
 #include "hook.h"
-#include "irc_string.h"
-#include "sprintf_irc.h"
+#include "match.h"
 #include "ircd.h"
 #include "numeric.h"
 #include "s_serv.h"            /* captab */
 #include "whowas.h"
 #include "s_conf.h"            /* ConfigFileEntry, ConfigChannel */
 #include "s_newconf.h"
-#include "s_log.h"
+#include "logger.h"
 
 extern rb_dlink_list global_channel_list;
 
 extern struct config_channel_entry ConfigChannel;
-static rb_bh *channel_heap;\r
-static rb_bh *ban_heap;\r
-static rb_bh *topic_heap;\r
-static rb_bh *member_heap;
+extern rb_bh *channel_heap;
+extern rb_bh *ban_heap;
+extern rb_bh *topic_heap;
+extern rb_bh *member_heap;
 
 static int channel_capabs[] = { CAP_EX, CAP_IE,
        CAP_SERVICE,
@@ -73,10 +72,10 @@ static int h_can_join;
 void
 init_channels(void)
 {
-       channel_heap = BlockHeapCreate(sizeof(struct Channel), CHANNEL_HEAP_SIZE);
-       ban_heap = BlockHeapCreate(sizeof(struct Ban), BAN_HEAP_SIZE);
-       topic_heap = BlockHeapCreate(TOPICLEN + 1 + USERHOST_REPLYLEN, TOPIC_HEAP_SIZE);
-       member_heap = BlockHeapCreate(sizeof(struct membership), MEMBER_HEAP_SIZE);
+       channel_heap = rb_bh_create(sizeof(struct Channel), CHANNEL_HEAP_SIZE, "channel_heap");
+       ban_heap = rb_bh_create(sizeof(struct Ban), BAN_HEAP_SIZE, "ban_heap");
+       topic_heap = rb_bh_create(TOPICLEN + 1 + USERHOST_REPLYLEN, TOPIC_HEAP_SIZE, "topic_heap");
+       member_heap = rb_bh_create(sizeof(struct membership), MEMBER_HEAP_SIZE, "member_heap");
 
        h_can_join = register_hook("can_join");
 }
@@ -88,7 +87,7 @@ struct Channel *
 allocate_channel(const char *chname)
 {
        struct Channel *chptr;
-       chptr = BlockHeapAlloc(channel_heap);
+       chptr = rb_bh_alloc(channel_heap);
        chptr->chname = rb_strdup(chname);
        return (chptr);
 }
@@ -97,14 +96,14 @@ void
 free_channel(struct Channel *chptr)
 {
        rb_free(chptr->chname);
-       BlockHeapFree(channel_heap, chptr);
+       rb_bh_free(channel_heap, chptr);
 }
 
 struct Ban *
 allocate_ban(const char *banstr, const char *who)
 {
        struct Ban *bptr;
-       bptr = BlockHeapAlloc(ban_heap);
+       bptr = rb_bh_alloc(ban_heap);
        bptr->banstr = rb_strdup(banstr);
        bptr->who = rb_strdup(who);
 
@@ -116,7 +115,7 @@ free_ban(struct Ban *bptr)
 {
        rb_free(bptr->banstr);
        rb_free(bptr->who);
-       BlockHeapFree(ban_heap, bptr);
+       rb_bh_free(ban_heap, bptr);
 }
 
 
@@ -205,7 +204,7 @@ add_user_to_channel(struct Channel *chptr, struct Client *client_p, int flags)
        if(client_p->user == NULL)
                return;
 
-       msptr = BlockHeapAlloc(member_heap);
+       msptr = rb_bh_alloc(member_heap);
 
        msptr->chptr = chptr;
        msptr->client_p = client_p;
@@ -247,7 +246,7 @@ remove_user_from_channel(struct membership *msptr)
        if(!(chptr->mode.mode & MODE_PERMANENT) && rb_dlink_list_length(&chptr->members) <= 0)
                destroy_channel(chptr);
 
-       BlockHeapFree(member_heap, msptr);
+       rb_bh_free(member_heap, msptr);
 
        return;
 }
@@ -284,7 +283,7 @@ remove_user_from_channels(struct Client *client_p)
                if(!(chptr->mode.mode & MODE_PERMANENT) && rb_dlink_list_length(&chptr->members) <= 0)
                        destroy_channel(chptr);
 
-               BlockHeapFree(member_heap, msptr);
+               rb_bh_free(member_heap, msptr);
        }
 
        client_p->user->channel.head = client_p->user->channel.tail = NULL;
@@ -989,7 +988,7 @@ check_splitmode(void *unused)
                                splitmode = 1;
                                sendto_realops_snomask(SNO_GENERAL, L_ALL,
                                                     "Network split, activating splitmode");
-                               eventAddIsh("check_splitmode", check_splitmode, NULL, 2);
+                               check_splitmode_ev = rb_event_addish("check_splitmode", check_splitmode, NULL, 2);
                        }
                }
                /* in splitmode, check whether its finished */
@@ -1000,7 +999,7 @@ check_splitmode(void *unused)
                        sendto_realops_snomask(SNO_GENERAL, L_ALL,
                                             "Network rejoined, deactivating splitmode");
 
-                       eventDelete(check_splitmode, NULL);
+                       rb_event_delete(check_splitmode_ev);
                }
        }
 }
@@ -1020,7 +1019,7 @@ allocate_topic(struct Channel *chptr)
        if(chptr == NULL)
                return;
 
-       ptr = BlockHeapAlloc(topic_heap);
+       ptr = rb_bh_alloc(topic_heap);
 
        /* Basically we allocate one large block for the topic and
         * the topic info.  We then split it up into two and shove it
@@ -1050,7 +1049,7 @@ free_topic(struct Channel *chptr)
         * MUST change this as well
         */
        ptr = chptr->topic;
-       BlockHeapFree(topic_heap, ptr);
+       rb_bh_free(topic_heap, ptr);
        chptr->topic = NULL;
        chptr->topic_info = NULL;
 }
@@ -1068,8 +1067,8 @@ set_channel_topic(struct Channel *chptr, const char *topic, const char *topic_in
        {
                if(chptr->topic == NULL)
                        allocate_topic(chptr);
-               strlcpy(chptr->topic, topic, TOPICLEN + 1);
-               strlcpy(chptr->topic_info, topic_info, USERHOST_REPLYLEN);
+               rb_strlcpy(chptr->topic, topic, TOPICLEN + 1);
+               rb_strlcpy(chptr->topic_info, topic_info, USERHOST_REPLYLEN);
                chptr->topic_time = topicts;
        }
        else
@@ -1160,8 +1159,8 @@ channel_modes(struct Channel *chptr, struct Client *client_p)
 
        *mbuf = '\0';
 
-       strlcpy(final, buf1, sizeof final);
-       strlcat(final, buf2, sizeof final);
+       rb_strlcpy(final, buf1, sizeof final);
+       rb_strlcat(final, buf2, sizeof final);
        return final;
 }