+/** Report on loaded modules.
+ * @param[in] to Client requesting statistics.
+ * @param[in] sd Stats descriptor for request (ignored).
+ * @param[in] param Extra parameter from user (ignored).
+ */
+static void
+stats_modules(struct Client* to, const struct StatDesc* sd, char* param)
+{
+crypt_mechs_t* mechs;
+
+ send_reply(to, SND_EXPLICIT | RPL_STATSLLINE,
+ "Module Description Entry Point");
+
+ /* atm the only "modules" we have are the crypto mechanisms,
+ eventualy they'll be part of a global dl module list, for now
+ i'll just output data about them -- hikari */
+
+ if(crypt_mechs_root == NULL)
+ return;
+
+ mechs = crypt_mechs_root->next;
+
+ for(;;)
+ {
+ if(mechs == NULL)
+ return;
+
+ send_reply(to, SND_EXPLICIT | RPL_STATSLLINE,
+ "%s %s 0x%X",
+ mechs->mech->shortname, mechs->mech->description,
+ mechs->mech->crypt_function);
+
+ mechs = mechs->next;
+ }
+
+}
+
+/** Report how many times each command has been used.
+ * @param[in] to Client requesting statistics.
+ * @param[in] sd Stats descriptor for request (ignored).
+ * @param[in] param Extra parameter from user (ignored).
+ */