6 #ifndef INCLUDED_querycmds_h
7 #define INCLUDED_querycmds_h
15 struct UserStatistics {
16 /* Local connections: */
17 unsigned int unknowns; /* IsUnknown() || IsConnecting() || IsHandshake() */
18 unsigned int local_servers; /* IsServer() && MyConnect() */
19 unsigned int local_clients; /* IsUser() && MyConnect() */
22 unsigned int servers; /* IsServer() || IsMe() */
23 unsigned int clients; /* IsUser() */
25 /* Global user mode changes: */
26 unsigned int inv_clients; /* IsUser() && IsInvisible() */
27 unsigned int opers; /* IsUser() && IsOper() */
30 unsigned int channels;
33 extern struct UserStatistics UserStats;
39 /* Macros for remote connections: */
40 #define Count_newremoteclient(UserStats, cptr) (++UserStats.clients, ++cptr->serv->clients)
41 #define Count_newremoteserver(UserStats) (++UserStats.servers)
43 #define Count_remoteclientquits(UserStats) (--UserStats.clients)
46 #define Count_remoteclientquits(UserStats,cptr) \
48 --UserStats.clients; \
49 if (!IsServer(cptr)) \
50 --cptr->user->server->serv->clients; \
53 #define Count_remoteserverquits(UserStats) (--UserStats.servers)
55 /* Macros for local connections: */
56 #define Count_newunknown(UserStats) (++UserStats.unknowns)
57 #define Count_unknownbecomesclient(cptr, UserStats) \
59 --UserStats.unknowns; ++UserStats.local_clients; ++UserStats.clients; \
60 if (match("*" DOMAINNAME, cptr->sockhost) == 0) \
61 ++current_load.local_count; \
62 if (UserStats.local_clients > max_client_count) \
63 max_client_count = UserStats.local_clients; \
64 if (UserStats.local_clients + UserStats.local_servers > max_connection_count) \
66 max_connection_count = UserStats.local_clients + UserStats.local_servers; \
67 if (max_connection_count % 10 == 0) \
68 sendto_ops("Maximum connections: %d (%d clients)", \
69 max_connection_count, max_client_count); \
72 #define Count_unknownbecomesserver(UserStats) do { --UserStats.unknowns; ++UserStats.local_servers; ++UserStats.servers; } while(0)
73 #define Count_clientdisconnects(cptr, UserStats) \
76 --UserStats.local_clients; --UserStats.clients; \
77 if (match("*" DOMAINNAME, cptr->sockhost) == 0) \
78 --current_load.local_count; \
80 #define Count_serverdisconnects(UserStats) do { --UserStats.local_servers; --UserStats.servers; } while(0)
81 #define Count_unknowndisconnects(UserStats) (--UserStats.unknowns)
88 #endif /* INCLUDED_querycmds_h */