E pcommand_t *pcommand_find(const char *token);
/* ptasks.c */
+E int get_version_string(char *, size_t);
E void handle_version(user_t *);
E void handle_admin(user_t *);
E void handle_info(user_t *);
#include "atheme.h"
#include "datastream.h"
#include "privs.h"
+#include "pmodule.h"
mowgli_patricia_t *ctcptree;
static void ctcp_version_handler(sourceinfo_t *si, char *cmd, char *args)
{
- const crypt_impl_t *ci = crypt_get_default_provider();
+ char ver[BUFSIZE];
- notice(si->service->nick, si->su->nick,
- "\001VERSION %s. %s %s %s [%s] [enc:%s] Build Date: %s\001",
- PACKAGE_STRING, revision, me.name, get_conf_opts(), ircd->ircdname, ci->id, __DATE__);
+ get_version_string(ver, sizeof(ver));
+ notice(si->service->nick, si->su->nick, "\001VERSION %s\001", ver);
}
static void ctcp_clientinfo_handler(sourceinfo_t *si, char *cmd, char *args)
numeric_sts(me.me, 374, u, ":End of /INFO list");
}
-void handle_version(user_t *u)
+int get_version_string(char *buf, size_t bufsize)
{
const crypt_impl_t *ci = crypt_get_default_provider();
+ return snprintf(buf, bufsize, "%s. %s %s :%s [%s] [enc:%s] Build Date: %s",
+ PACKAGE_STRING, me.name, revision, get_conf_opts(), ircd->ircdname, ci->id, __DATE__);
+}
+void handle_version(user_t *u)
+{
if (u == NULL)
return;
if (floodcheck(u, NULL))
return;
- numeric_sts(me.me, 351, u, "%s. %s %s :%s [%s] [enc:%s] Build Date: %s",
- PACKAGE_STRING, me.name, revision, get_conf_opts(), ircd->ircdname, ci->id, __DATE__);
+ char ver[BUFSIZE];
+ get_version_string(ver, sizeof(ver));
+ numeric_sts(me.me, 351, u, "%s", ver);
}
void handle_admin(user_t *u)