X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/055a469a829dcea470d29fc3ea5cda0c487fb4ea..440cd7e63ac2b059ea1a467a2e4e2244faf92cb3:/nick/nickhelpers.c?ds=sidebyside diff --git a/nick/nickhelpers.c b/nick/nickhelpers.c index 51e7d9e7..d4081ce6 100644 --- a/nick/nickhelpers.c +++ b/nick/nickhelpers.c @@ -12,10 +12,6 @@ #define hosthash(x) ((crc32i(x))%HOSTHASHSIZE) #define realnamehash(x) ((crc32(x))%REALNAMEHASHSIZE) -unsigned int hostmarker; -unsigned int realnamemarker; -unsigned int nickmarker; - host *hosttable[HOSTHASHSIZE]; realname *realnametable[REALNAMEHASHSIZE]; @@ -24,6 +20,30 @@ void initnickhelpers() { memset(realnametable,0,sizeof(realnametable)); } +void fininickhelpers() { + host *hnp, *hnpn; + realname *rnp, *rnpn; + int i; + + for(i=0;inext; + freesstring(hnp->name); + freehost(hnp); + } + hosttable[i]=NULL; + } + + for(i=0;inext; + freesstring(rnp->name); + freerealname(rnp); + } + realnametable[i]=NULL; + } +} + host *findhost(const char *hostname) { host *hp; for (hp=hosttable[hosthash(hostname)];hp;hp=(host *)hp->next) { @@ -118,6 +138,7 @@ void releaserealname(realname *rnp) { unsigned int nexthostmarker() { int i; host *hp; + static unsigned int hostmarker=0; hostmarker++; if (!hostmarker) { @@ -134,6 +155,7 @@ unsigned int nexthostmarker() { unsigned int nextrealnamemarker() { int i; realname *rnp; + static unsigned int realnamemarker=0; realnamemarker++; if (!realnamemarker) { @@ -150,6 +172,7 @@ unsigned int nextrealnamemarker() { unsigned int nextnickmarker() { int i; nick *np; + static unsigned int nickmarker=0; nickmarker++;