X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/b5d1db5e073d1028c513bbffbb0aec12538ee5b8..e372a0406bcb1e47974b5b2af929f9198c37652a:/bans/bans.c diff --git a/bans/bans.c b/bans/bans.c index 1a34cbbb..7c4cc989 100644 --- a/bans/bans.c +++ b/bans/bans.c @@ -14,32 +14,16 @@ MODULE_VERSION("") -#define ALLOCUNIT 100 - -chanban *freebans; - -void _init() { - freebans=NULL; -} - void _fini() { nsfreeall(POOL_BANS); } chanban *getchanban() { - int i; chanban *cbp; - if (freebans==NULL) { - freebans=(chanban *)nsmalloc(POOL_BANS, ALLOCUNIT*sizeof(chanban)); - for (i=0;inext; + cbp = nsmalloc(POOL_BANS, sizeof(chanban)); + if (!cbp) + return NULL; cbp->nick=NULL; cbp->user=NULL; @@ -49,16 +33,11 @@ chanban *getchanban() { } void freechanban(chanban *cbp) { - cbp->next=(struct chanban *)freebans; - - if (cbp->nick) - freesstring(cbp->nick); - if (cbp->user) - freesstring(cbp->user); - if (cbp->host) - freesstring(cbp->host); + freesstring(cbp->nick); + freesstring(cbp->user); + freesstring(cbp->host); - freebans=cbp; + nsfree(POOL_BANS, cbp); } /*