]> jfr.im git - irc/rqf/shadowircd.git/blob - include/s_stats.h
Show some target change statistics in /stats t.
[irc/rqf/shadowircd.git] / include / s_stats.h
1 /*
2 * ircd-ratbox: A slightly useful ircd.
3 * s_stats.h: A header for the statistics functions.
4 *
5 * Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
6 * Copyright (C) 1996-2002 Hybrid Development Team
7 * Copyright (C) 2002-2004 ircd-ratbox development team
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
22 * USA
23 *
24 * $Id: s_stats.h 1409 2006-05-21 14:46:17Z jilles $
25 */
26
27 #ifndef INCLUDED_s_stats_h
28 #define INCLUDED_s_stats_h
29
30 #include "config.h"
31
32 #define _1MEG (1024.0)
33 #define _1GIG (1024.0*1024.0)
34 #define _1TER (1024.0*1024.0*1024.0)
35 #define _GMKs(x) ( (x > _1TER) ? "Terabytes" : ((x > _1GIG) ? "Gigabytes" : \
36 ((x > _1MEG) ? "Megabytes" : "Kilobytes")))
37 #define _GMKv(x) ( (x > _1TER) ? (float)(x/_1TER) : ((x > _1GIG) ? \
38 (float)(x/_1GIG) : ((x > _1MEG) ? (float)(x/_1MEG) : (float)x)))
39
40 struct Client;
41
42 /*
43 * statistics structures
44 */
45 struct ServerStatistics
46 {
47 unsigned int is_cl; /* number of client connections */
48 unsigned int is_sv; /* number of server connections */
49 unsigned int is_ni; /* connection but no idea who it was */
50 unsigned short is_cbs; /* bytes sent to clients */
51 unsigned short is_cbr; /* bytes received to clients */
52 unsigned short is_sbs; /* bytes sent to servers */
53 unsigned short is_sbr; /* bytes received to servers */
54 unsigned long is_cks; /* k-bytes sent to clients */
55 unsigned long is_ckr; /* k-bytes received to clients */
56 unsigned long is_sks; /* k-bytes sent to servers */
57 unsigned long is_skr; /* k-bytes received to servers */
58 time_t is_cti; /* time spent connected by clients */
59 time_t is_sti; /* time spent connected by servers */
60 unsigned int is_ac; /* connections accepted */
61 unsigned int is_ref; /* accepts refused */
62 unsigned int is_unco; /* unknown commands */
63 unsigned int is_wrdi; /* command going in wrong direction */
64 unsigned int is_unpf; /* unknown prefix */
65 unsigned int is_empt; /* empty message */
66 unsigned int is_num; /* numeric message */
67 unsigned int is_kill; /* number of kills generated on collisions */
68 unsigned int is_save; /* number of saves generated on collisions */
69 unsigned int is_asuc; /* successful auth requests */
70 unsigned int is_abad; /* bad auth requests */
71 unsigned int is_rej; /* rejected from cache */
72 unsigned int is_ssuc; /* successful sasl authentications */
73 unsigned int is_sbad; /* failed sasl authentications */
74 unsigned int is_tgch; /* messages blocked due to target change */
75 };
76
77 extern struct ServerStatistics *ServerStats;
78
79 extern void init_stats(void);
80 extern void tstats(struct Client *client);
81
82 extern void count_memory(struct Client *);
83
84 #endif /* INCLUDED_s_stats_h */