rb_dlink_list *idTable;
rb_dlink_list *resvTable;
rb_dlink_list *hostTable;
-static rb_dlink_list clientbyfdTable[U_MAX];
/*
* look in whowas.c for the missing ...[WW_MAX]; entry
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)
{
unsigned long total = 0;
int i;
+ char buf[128];
sendto_one_numeric(source_p, RPL_STATSDEBUG,
"B :%s Hash Statistics", name);
- sendto_one_numeric(source_p, RPL_STATSDEBUG,
- "B :Size: %d Empty: %d (%.3f%%)",
- length, counts[0],
+ snprintf(buf, sizeof buf, "%.3f%%",
(float) ((counts[0]*100) / (float) length));
+ sendto_one_numeric(source_p, RPL_STATSDEBUG,
+ "B :Size: %d Empty: %d (%s)",
+ length, counts[0], buf);
for(i = 1; i < 11; i++)
{
/* dont want to divide by 0! --fl */
if(counts[0] != length)
- sendto_one_numeric(source_p, RPL_STATSDEBUG,
- "B :Average depth: %.3f/%.3f Highest depth: %d",
+ {
+ snprintf(buf, sizeof buf, "%.3f/%.3f",
(float) (total / (length - counts[0])),
- (float) (total / length), deepest);
+ (float) (total / length));
+ sendto_one_numeric(source_p, RPL_STATSDEBUG,
+ "B :Average depth: %s Highest depth: %d",
+ buf, deepest);
+ }
for(i = 0; i < 11; i++)
{