X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/e8149a2c64f9ffd45c54d1021f1d7cabdc565b03..3fa27fe787e1d1c108c204999513bc77469f89b0:/include/hash.h diff --git a/include/hash.h b/include/hash.h index dbe1cca..cc4e480 100644 --- a/include/hash.h +++ b/include/hash.h @@ -21,22 +21,19 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * - * $Id: hash.h 3177 2007-02-01 00:19:14Z jilles $ */ #ifndef INCLUDED_hash_h #define INCLUDED_hash_h -#include "tools.h" - struct Dictionary; -extern dlink_list *clientTable; -extern dlink_list *channelTable; -extern dlink_list *idTable; -extern dlink_list *resvTable; -extern dlink_list *hostTable; -extern dlink_list *helpTable; +extern rb_dlink_list *clientTable; +extern rb_dlink_list *channelTable; +extern rb_dlink_list *idTable; +extern rb_dlink_list *resvTable; +extern rb_dlink_list *hostTable; +extern rb_dlink_list *helpTable; extern struct Dictionary *nd_dict; @@ -47,6 +44,9 @@ extern struct Dictionary *nd_dict; #define U_MAX_BITS 17 #define U_MAX 131072 /* 2^17 */ +/* Client fd hash table size, used in hash.c */ +#define CLI_FD_MAX 4096 + /* Channel hash table size, hash.c/s_debug.c */ #define CH_MAX_BITS 16 #define CH_MAX 65536 /* 2^16 */ @@ -60,8 +60,8 @@ extern struct Dictionary *nd_dict; #define R_MAX 1024 /* 2^10 */ -#define HASH_WALK(i, max, ptr, table) for (i = 0; i < max; i++) { DLINK_FOREACH(ptr, table[i].head) -#define HASH_WALK_SAFE(i, max, ptr, nptr, table) for (i = 0; i < max; i++) { DLINK_FOREACH_SAFE(ptr, nptr, table[i].head) +#define HASH_WALK(i, max, ptr, table) for (i = 0; i < max; i++) { RB_DLINK_FOREACH(ptr, table[i].head) +#define HASH_WALK_SAFE(i, max, ptr, nptr, table) for (i = 0; i < max; i++) { RB_DLINK_FOREACH_SAFE(ptr, nptr, table[i].head) #define HASH_WALK_END } struct Client; @@ -93,13 +93,17 @@ extern struct Channel *find_channel(const char *name); extern void add_to_hostname_hash(const char *, struct Client *); extern void del_from_hostname_hash(const char *, struct Client *); -extern dlink_node *find_hostname(const char *); +extern rb_dlink_node *find_hostname(const char *); extern void add_to_resv_hash(const char *name, struct ConfItem *aconf); extern void del_from_resv_hash(const char *name, struct ConfItem *aconf); extern struct ConfItem *hash_find_resv(const char *name); extern void clear_resv_hash(void); +void add_to_cli_fd_hash(struct Client *client_p); +void del_from_cli_fd_hash(struct Client *client_p); +struct Client *find_cli_fd_hash(int fd); + extern void hash_stats(struct Client *); #endif /* INCLUDED_hash_h */