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);\r
+void del_from_cli_fd_hash(struct Client *client_p);\r
+struct Client *find_cli_fd_hash(int fd);
+
extern void hash_stats(struct Client *);
#endif /* INCLUDED_hash_h */
HASH_WALK_END
}
+void\r
+add_to_cli_fd_hash(struct Client *client_p)\r
+{\r
+ rb_dlinkAddAlloc(client_p, &clientbyfdTable[hash_cli_fd(rb_get_fd(client_p->localClient->F))]);\r
+}\r
+\r
+\r
+void\r
+del_from_cli_fd_hash(struct Client *client_p)\r
+{\r
+ unsigned int hashv;\r
+ hashv = hash_cli_fd(rb_get_fd(client_p->localClient->F));\r
+ rb_dlinkFindDestroy(client_p, &clientbyfdTable[hashv]);\r
+}\r
+\r
+struct Client *\r
+find_cli_fd_hash(int fd)\r
+{\r
+ struct Client *target_p;\r
+ rb_dlink_node *ptr;\r
+ unsigned int hashv;\r
+ hashv = hash_cli_fd(fd);\r
+ RB_DLINK_FOREACH(ptr, clientbyfdTable[hashv].head)\r
+ {\r
+ target_p = ptr->data;\r
+ if(rb_get_fd(target_p->localClient->F) == fd)\r
+ return target_p;\r
+ }\r
+ return NULL; \r
+}
+
static void
output_hash(struct Client *source_p, const char *name, int length, int *counts, int deepest)
{