-#define CLI_FD_MAX 4096\r
-\r
-/* Channel hash table size, hash.c/s_debug.c */\r
-#define CH_MAX_BITS 16\r
-#define CH_MAX (1<<CH_MAX_BITS) /* 2^16 */\r
-\r
-/* hostname hash table size */\r
-#define HOST_MAX_BITS 17\r
-#define HOST_MAX (1<<HOST_MAX_BITS) /* 2^17 */\r
-\r
-/* RESV/XLINE hash table size, used in hash.c */\r
-#define R_MAX_BITS 10\r
-#define R_MAX (1<<R_MAX_BITS) /* 2^10 */\r
-\r
-\r
-#define HASH_WALK(i, max, ptr, table) for (i = 0; i < max; i++) { RB_DLINK_FOREACH(ptr, table[i].head)\r
-#define HASH_WALK_SAFE(i, max, ptr, nptr, table) for (i = 0; i < max; i++) { RB_DLINK_FOREACH_SAFE(ptr, nptr, table[i].head)\r
-#define HASH_WALK_END }\r
-\r
-typedef enum\r
-{\r
- HASH_CLIENT,\r
- HASH_ID,\r
- HASH_CHANNEL,\r
- HASH_HOSTNAME,\r
- HASH_RESV\r
-} hash_type;\r
-\r
-struct Client;\r
-struct Channel;\r
-struct ConfItem;\r
-struct cachefile;\r
-struct nd_entry;\r
-\r
-uint32_t fnv_hash_upper(const unsigned char *s, unsigned int bits, unsigned int unused);\r
-uint32_t fnv_hash(const unsigned char *s, unsigned int bits, unsigned int unused);\r
-uint32_t fnv_hash_len(const unsigned char *s, unsigned int bits, unsigned int len);\r
-uint32_t fnv_hash_upper_len(const unsigned char *s, unsigned int bits, unsigned int len);\r
-\r
-void init_hash(void);\r
-\r
-void add_to_hash(hash_type, const char *, void *);\r
-void del_from_hash(hash_type, const char *, void *);\r
-\r
-struct Client *find_any_client(const char *name);\r
-struct Client *find_client(const char *name);\r
-struct Client *find_named_client(const char *name);\r
-struct Client *find_server(struct Client *source_p, const char *name);\r
-\r
-struct Client *find_id(const char *name);\r
-\r
-struct Channel *get_or_create_channel(struct Client *client_p, const char *chname, int *isnew);\r
-struct Channel *find_channel(const char *name);\r
-\r
-rb_dlink_node *find_hostname(const char *);\r
-\r
-struct ConfItem *hash_find_resv(const char *name);\r
-void clear_resv_hash(void);\r
-\r
-void add_to_help_hash(const char *name, struct cachefile *hptr);\r
-void clear_help_hash(void);\r
-struct cachefile *hash_find_help(const char *name, int flags);\r
-\r
-void add_to_nd_hash(const char *name, struct nd_entry *nd);\r
-struct nd_entry *hash_find_nd(const char *name);\r
-\r
+#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 */
+
+/* hostname hash table size */
+#define HOST_MAX_BITS 17
+#define HOST_MAX 131072 /* 2^17 */
+
+/* RESV/XLINE hash table size, used in hash.c */
+#define R_MAX_BITS 10
+#define R_MAX 1024 /* 2^10 */
+
+
+#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;
+struct Channel;
+struct ConfItem;
+struct cachefile;
+struct nd_entry;
+
+extern u_int32_t fnv_hash_upper(const unsigned char *s, int bits);
+extern u_int32_t fnv_hash(const unsigned char *s, int bits);
+extern u_int32_t fnv_hash_len(const unsigned char *s, int bits, int len);
+extern u_int32_t fnv_hash_upper_len(const unsigned char *s, int bits, int len);
+
+extern void init_hash(void);
+
+extern void add_to_client_hash(const char *name, struct Client *client);
+extern void del_from_client_hash(const char *name, struct Client *client);
+extern struct Client *find_client(const char *name);
+extern struct Client *find_named_client(const char *name);
+extern struct Client *find_server(struct Client *source_p, const char *name);
+
+extern void add_to_id_hash(const char *, struct Client *);
+extern void del_from_id_hash(const char *name, struct Client *client);
+extern struct Client *find_id(const char *name);
+
+extern struct Channel *get_or_create_channel(struct Client *client_p, const char *chname, int *isnew);
+extern void del_from_channel_hash(const char *name, struct Channel *chan);
+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 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);
+