- sendto_one(cptr, ":%s %d %s :Client Local %d(" SIZE_T_FMT
- ") Remote %d(" SIZE_T_FMT ")",
- me.name, RPL_STATSDEBUG, nick, lc, lcm, rc, rcm);
- sendto_one(cptr, ":%s %d %s :Users %d(" SIZE_T_FMT
- ") Invites %d(" SIZE_T_FMT ")",
- me.name, RPL_STATSDEBUG, nick, us, us * sizeof(anUser), usi,
- usi * sizeof(Link));
- sendto_one(cptr, ":%s %d %s :User channels %d(" SIZE_T_FMT
- ") Aways %d(" SIZE_T_FMT ")",
- me.name, RPL_STATSDEBUG, nick, usc, usc * sizeof(Link), aw, awm);
- sendto_one(cptr, ":%s %d %s :Attached confs %d(" SIZE_T_FMT ")",
- me.name, RPL_STATSDEBUG, nick, lcc, lcc * sizeof(Link));
-
- totcl = lcm + rcm + us * sizeof(anUser) + usc * sizeof(Link) + awm;
- totcl += lcc * sizeof(Link) + usi * sizeof(Link);
-
- sendto_one(cptr, ":%s %d %s :Conflines %d(" SIZE_T_FMT ")",
- me.name, RPL_STATSDEBUG, nick, co, com);
-
- sendto_one(cptr, ":%s %d %s :Classes %d(" SIZE_T_FMT ")",
- me.name, RPL_STATSDEBUG, nick, cl, cl * sizeof(aConfClass));
-
- sendto_one(cptr, ":%s %d %s :Channels %d(" SIZE_T_FMT
- ") Bans %d(" SIZE_T_FMT ")",
- me.name, RPL_STATSDEBUG, nick, ch, chm, chb, chbm);
- sendto_one(cptr, ":%s %d %s :Channel membrs %d(" SIZE_T_FMT
- ") invite %d(" SIZE_T_FMT ")",
- me.name, RPL_STATSDEBUG, nick, chu, chu * sizeof(Link),
- chi, chi * sizeof(Link));
-
- totch = chm + chbm + chu * sizeof(Link) + chi * sizeof(Link);
-
- sendto_one(cptr, ":%s %d %s :Whowas users %d(" SIZE_T_FMT
- ") away %d(" SIZE_T_FMT ")",
- me.name, RPL_STATSDEBUG, nick, wwu, wwu * sizeof(anUser), wwa, wwam);
- sendto_one(cptr, ":%s %d %s :Whowas array %d(" SIZE_T_FMT ")",
- me.name, RPL_STATSDEBUG, nick, NICKNAMEHISTORYLENGTH, wwm);
-
- totww = wwu * sizeof(anUser) + wwam + wwm;
-
- sendto_one(cptr, ":%s %d %s :Hash: client %d(" SIZE_T_FMT
- "), chan is the same",
- me.name, RPL_STATSDEBUG, nick, HASHSIZE, sizeof(void *) * HASHSIZE);
-
+ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG,
+ ":Clients %d(%zu) Connections %d(%zu)", c, cm, cn, cnm);
+ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG,
+ ":Users %zu(%zu) Accounts %d(%zu) Invites %d(%zu)",
+ us, usm, acc, acc * (ACCOUNTLEN + 1),
+ usi, usi * sizeof(struct SLink));
+ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG,
+ ":User channels %d(%zu) Aways %d(%zu)", memberships,
+ memberships * sizeof(struct Membership), aw, awm);
+
+ totcl = cm + cnm + us * sizeof(struct User) + memberships * sizeof(struct Membership) + awm;
+ totcl += lcc * sizeof(struct SLink) + usi * sizeof(struct SLink);
+
+ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG, ":Conflines %d(%zu) Attached %d(%zu) Classes %d(%zu)",
+ co, com, lcc, lcc * sizeof(struct SLink),
+ cl, cl * sizeof(struct ConnectionClass));
+
+ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG,
+ ":Channels %d(%zu) Bans %d(%zu)", ch, chm, chb, chbm);
+ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG,
+ ":Channel Members %d(%zu) Invites %d(%zu)", memberships,
+ memberships * sizeof(struct Membership), chi,
+ chi * sizeof(struct SLink));
+
+ totch = chm + chbm + chi * sizeof(struct SLink);
+
+ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG,
+ ":Whowas Users %d(%zu) Away %d(%zu) Array %d(%zu)",
+ wwu, wwu * sizeof(struct User), wwa, wwam,
+ feature_int(FEAT_NICKNAMEHISTORYLENGTH), wwm);
+
+ totww = wwu * sizeof(struct User) + wwam + wwm;
+
+ motd_memory_count(cptr);
+
+ gl = gline_memory_count(&glm);
+ ju = jupe_memory_count(&jum);
+ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG,
+ ":Glines %d(%zu) Jupes %d(%zu)", gl, glm, ju, jum);
+
+ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG,
+ ":Hash: client %d(%zu), chan is the same", HASHSIZE,
+ sizeof(void *) * HASHSIZE);
+
+ count_listener_memory(&listeners, &listenersm);
+ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG,
+ ":Listeners allocated %d(%zu)", listeners, listenersm);