]>
jfr.im git - irc/quakenet/newserv.git/blob - chanstats/chanstatshash.c
3 #include "../lib/irc_string.h"
4 #include "../irc/irc_config.h"
6 #define chanstatshash(x) (crc32i(x)%CHANSTATSHASHSIZE)
10 * Returns a chanstats * for the given channel name.
11 * Creates if necessary.
14 chanstats
*findchanstats(const char *channame
) {
18 hash
=chanstatshash(channame
);
20 for (csp
=chanstatstable
[hash
];csp
;csp
=csp
->next
) {
21 if (!ircd_strcmp(channame
,csp
->name
->content
)) {
26 /* It didn't match, create a new one */
28 memset(csp
,0,sizeof(chanstats
));
29 csp
->name
=getsstring(channame
,CHANNELLEN
);
31 csp
->next
=chanstatstable
[hash
];
32 chanstatstable
[hash
]=csp
;
38 * findchanstatsifexists:
39 * Returns a chanstats * for the given channel name.
40 * Returns NULL if there are no stats.
43 chanstats
*findchanstatsifexists(const char *channame
) {
47 hash
=chanstatshash(channame
);
49 for (csp
=chanstatstable
[hash
];csp
;csp
=csp
->next
) {
50 if (!ircd_strcmp(channame
,csp
->name
->content
)) {