]> jfr.im git - irc/quakenet/newserv.git/blobdiff - bans/bans.c
A4STATS: remove E style escapes and switch to createtable for indices
[irc/quakenet/newserv.git] / bans / bans.c
index 65b5db9f0f10d619ef0b397f50c3021698090fde..7c4cc989b286fab55cd40377468d1156733f4034 100644 (file)
 
 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;i<ALLOCUNIT-1;i++) {
-      freebans[i].next=(struct chanban *)&(freebans[i+1]);
-    }
-    freebans[ALLOCUNIT-1].next=NULL;
-  }
-
-  cbp=freebans;
-  freebans=cbp->next;
+  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);
 }
 
 /*
@@ -420,9 +399,9 @@ char *bantostring(chanban *bp) {
   strpos += sprintf(outstring+strpos,"@");
 
   if (bp->flags & CHANBAN_HOSTANY) {
-    strpos += sprintf(outstring+strpos,"*");
+    sprintf(outstring+strpos,"*");
   } else if (bp->host) {
-    strpos += sprintf(outstring+strpos,"%s",bp->host->content);
+    sprintf(outstring+strpos,"%s",bp->host->content);
   }
 
   return outstring;
@@ -452,12 +431,11 @@ char *bantostringdebug(chanban *bp) {
   }
 
   if (bp->host) {
-    strpos += sprintf(outstring+strpos, "host=%s ",bp->host->content);
+    sprintf(outstring+strpos, "host=%s ",bp->host->content);
   } else {
-    strpos += sprintf(outstring+strpos, "nohost ");
+    sprintf(outstring+strpos, "nohost ");
   }
 
-
   return outstring;
 }