summaryrefslogtreecommitdiff
path: root/src/core/os_logonnews.c
diff options
context:
space:
mode:
authorRobin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864>2008-11-05 00:17:27 +0000
committerRobin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864>2008-11-05 00:17:27 +0000
commit3bc401a13010084c8a8221ceb1c0c15463452ec6 (patch)
treee97a548887fc05b3aab69d2435a82197114639aa /src/core/os_logonnews.c
parente47d169f4961dbcc36014e11a6ead2be0baf62f6 (diff)
Convert OperServ. YES, src/core done.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1557 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/core/os_logonnews.c')
-rw-r--r--src/core/os_logonnews.c78
1 files changed, 36 insertions, 42 deletions
diff --git a/src/core/os_logonnews.c b/src/core/os_logonnews.c
index abcd1075d..087df972f 100644
--- a/src/core/os_logonnews.c
+++ b/src/core/os_logonnews.c
@@ -21,49 +21,43 @@ void myOperServHelp(User * u);
int load_config(void);
int reload_config(int argc, char **argv);
-/**
- * Create the command, and tell anope about it.
- * @param argc Argument count
- * @param argv Argument list
- * @return MOD_CONT to allow the module, MOD_STOP to stop it
- **/
-int AnopeInit(int argc, char **argv)
+class OSLogonNews : public Module
{
- EvtHook *hook;
- char buf[BUFSIZE];
-
- moduleAddAuthor("Anope");
- moduleAddVersion("$Id$");
- moduleSetType(CORE);
-
- /**
- * For some unknown reason, do_logonnews is actaully defined in news.c
- * we can look at moving it here later
- **/
- c = createCommand("LOGONNEWS", do_logonnews, is_services_admin,
- NEWS_HELP_LOGON, -1, -1, -1, -1);
- snprintf(buf, BUFSIZE, "%d", NewsCount),
- c->help_param1 = sstrdup(buf);
- moduleAddCommand(OPERSERV, c, MOD_UNIQUE);
-
- moduleSetOperHelp(myOperServHelp);
-
- hook = createEventHook(EVENT_RELOAD, reload_config);
- if (moduleAddEventHook(hook) != MOD_ERR_OK) {
- alog("[\002os_logonnews\002] Can't hook to EVENT_RELOAD event");
- return MOD_STOP;
- }
-
- return MOD_CONT;
-}
+ public:
+ OSLogonNews(const std::string &creator) : Module(creator)
+ {
+ EvtHook *hook;
+ char buf[BUFSIZE];
+
+ moduleAddAuthor("Anope");
+ moduleAddVersion("$Id$");
+ moduleSetType(CORE);
+
+ /**
+ * For some unknown reason, do_logonnews is actaully defined in news.c
+ * we can look at moving it here later
+ **/
+ c = createCommand("LOGONNEWS", do_logonnews, is_services_admin,
+ NEWS_HELP_LOGON, -1, -1, -1, -1);
+ snprintf(buf, BUFSIZE, "%d", NewsCount),
+ c->help_param1 = sstrdup(buf);
+ moduleAddCommand(OPERSERV, c, MOD_UNIQUE);
+
+ moduleSetOperHelp(myOperServHelp);
+
+ hook = createEventHook(EVENT_RELOAD, reload_config);
+ if (moduleAddEventHook(hook) != MOD_ERR_OK)
+ {
+ throw ModuleException("os_logonnews: Can't hook to EVENT_RELOAD event");
+ }
+ }
+
+ ~OSLogonNews()
+ {
+ free(c->help_param1);
+ }
+};
-/**
- * Unload the module
- **/
-void AnopeFini(void)
-{
- free(c->help_param1);
-}
/**
@@ -97,4 +91,4 @@ int reload_config(int argc, char **argv) {
/* EOF */
-MODULE_INIT("os_logonnews")
+MODULE_INIT(OSLogonNews)