command_t cs_access = { "ACCESS", "Manipulates channel access lists.",
AC_NONE, 4, cs_cmd_access, { .path = "contrib/access" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("chanserv", &cs_access);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("chanserv", &cs_access);
-}
-
static void
compat_cmd(sourceinfo_t *si, const char *cmdname, char *channel, char *arg1, char *arg2, char *arg3)
{
command_fail(si, fault_badparams, _("Invalid command. Use \2/%s%s help\2 for a command listing."), (ircd->uses_rcommand == FALSE) ? "msg " : "", si->service->disp);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("chanserv", &cs_access);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("chanserv", &cs_access);
+}
+
VENDOR_DECLARE_MODULE_V1("contrib/cs_access_alias", MODULE_UNLOAD_CAPABILITY_OK, CONTRIB_VENDOR_FREENODE)
mowgli_patricia_t **cs_set_cmdtree;
-static void
-mod_init(module_t *const restrict m)
-{
- MODULE_TRY_REQUEST_SYMBOL(m, cs_set_cmdtree, "chanserv/set_core", "cs_set_cmdtree");
-
- if (!module_find_published("backend/opensex"))
- {
- slog(LG_INFO, "Module %s requires use of the OpenSEX database backend, refusing to load.", m->name);
- m->mflags = MODTYPE_FAIL;
- return;
- }
-
- hook_add_event("channel_message");
- hook_add_channel_message(on_channel_message);
-
- hook_add_db_write(write_badword_db);
-
- db_register_type_handler("BW", db_h_bw);
-
- service_named_bind_command("chanserv", &cs_badwords);
- command_add(&cs_set_blockbadwords, *cs_set_cmdtree);
- command_add(&cs_set_blockbadwordsops, *cs_set_cmdtree);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- hook_del_channel_message(on_channel_message);
- hook_del_db_write(write_badword_db);
-
- db_unregister_type_handler("BW");
-
- service_named_unbind_command("chanserv", &cs_badwords);
- command_delete(&cs_set_blockbadwords, *cs_set_cmdtree);
- command_delete(&cs_set_blockbadwordsops, *cs_set_cmdtree);
-}
-
static inline mowgli_list_t *
badwords_list_of(mychan_t *mc)
{
}
}
+static void
+mod_init(module_t *const restrict m)
+{
+ MODULE_TRY_REQUEST_SYMBOL(m, cs_set_cmdtree, "chanserv/set_core", "cs_set_cmdtree");
+
+ if (!module_find_published("backend/opensex"))
+ {
+ slog(LG_INFO, "Module %s requires use of the OpenSEX database backend, refusing to load.", m->name);
+ m->mflags = MODTYPE_FAIL;
+ return;
+ }
+
+ hook_add_event("channel_message");
+ hook_add_channel_message(on_channel_message);
+
+ hook_add_db_write(write_badword_db);
+
+ db_register_type_handler("BW", db_h_bw);
+
+ service_named_bind_command("chanserv", &cs_badwords);
+ command_add(&cs_set_blockbadwords, *cs_set_cmdtree);
+ command_add(&cs_set_blockbadwordsops, *cs_set_cmdtree);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ hook_del_channel_message(on_channel_message);
+ hook_del_db_write(write_badword_db);
+
+ db_unregister_type_handler("BW");
+
+ service_named_unbind_command("chanserv", &cs_badwords);
+ command_delete(&cs_set_blockbadwords, *cs_set_cmdtree);
+ command_delete(&cs_set_blockbadwordsops, *cs_set_cmdtree);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/cs_badwords", MODULE_UNLOAD_CAPABILITY_OK)
command_t cs_fregister = { "FREGISTER", N_("Forcibly registers a channel."),
PRIV_CHAN_ADMIN, 3, cs_cmd_fregister, { .path = "contrib/cs_fregister" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("chanserv", &cs_fregister);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("chanserv", &cs_fregister);
-}
-
static void
cs_cmd_fregister(sourceinfo_t *si, int parc, char *parv[])
{
}
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("chanserv", &cs_fregister);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("chanserv", &cs_fregister);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/cs_fregister", MODULE_UNLOAD_CAPABILITY_OK)
AC_NONE, 0, cs_cmd_ping, { .path = "contrib/cs_ping" } };
static void
-mod_init(module_t *const restrict m)
+cs_cmd_ping(sourceinfo_t *si, int parc, char *parv[])
{
- service_named_bind_command("chanserv", &cs_ping);
+ command_success_nodata(si, "Pong!");
+ return;
}
static void
-mod_deinit(const module_unload_intent_t intent)
+mod_init(module_t *const restrict m)
{
- service_named_unbind_command("chanserv", &cs_ping);
+ service_named_bind_command("chanserv", &cs_ping);
}
static void
-cs_cmd_ping(sourceinfo_t *si, int parc, char *parv[])
+mod_deinit(const module_unload_intent_t intent)
{
- command_success_nodata(si, "Pong!");
- return;
+ service_named_unbind_command("chanserv", &cs_ping);
}
SIMPLE_DECLARE_MODULE_V1("contrib/cs_ping", MODULE_UNLOAD_CAPABILITY_OK)
command_t cs_up = { "UP", "Grants all access you have permission to on a given channel.", AC_NONE, 1, cs_cmd_up, { .path = "contrib/up" } };
command_t cs_down = { "DOWN", "Removes all current access you posess on a given channel.", AC_NONE, 1, cs_cmd_down, { .path = "contrib/down" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("chanserv", &cs_up);
- service_named_bind_command("chanserv", &cs_down);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("chanserv", &cs_up);
- service_named_unbind_command("chanserv", &cs_down);
-}
-
static void
cs_cmd_up(sourceinfo_t *si, int parc, char *parv[])
{
command_success_nodata(si, "Downed successfully on \2%s\2.", mc->name);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("chanserv", &cs_up);
+ service_named_bind_command("chanserv", &cs_down);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("chanserv", &cs_up);
+ service_named_unbind_command("chanserv", &cs_down);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/cs_updown", MODULE_UNLOAD_CAPABILITY_OK)
command_t cs_userinfo = { "USERINFO", N_("Sets a userinfo message."),
AC_NONE, 3, cs_cmd_userinfo, { .path = "contrib/userinfo" } };
-static void
-mod_init(module_t *const restrict m)
-{
- hook_add_event("channel_join");
- hook_add_channel_join(userinfo_check_join);
- service_named_bind_command("chanserv", &cs_userinfo);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- hook_del_channel_join(userinfo_check_join);
- service_named_unbind_command("chanserv", &cs_userinfo);
-}
-
/* USERINFO <channel> [user] [message] */
static void
cs_cmd_userinfo(sourceinfo_t *si, int parc, char *parv[])
msg(chansvs.nick, cu->chan->name, "[%s] %s", cu->user->nick, md->value);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ hook_add_event("channel_join");
+ hook_add_channel_join(userinfo_check_join);
+ service_named_bind_command("chanserv", &cs_userinfo);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ hook_del_channel_join(userinfo_check_join);
+ service_named_unbind_command("chanserv", &cs_userinfo);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/cs_userinfo", MODULE_UNLOAD_CAPABILITY_OK)
static void handle_verify_register(hook_user_req_t *req);
static void hook_user_identify(user_t *u);
-static void
-mod_init(module_t *const restrict m)
-{
- hook_add_event("user_verify_register");
- hook_add_user_verify_register(handle_verify_register);
- hook_add_event("user_identify");
- hook_add_user_identify(hook_user_identify);
- counter = (CURRTIME << 8) % 100000;
- if (counter < 0)
- counter += 100000;
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- hook_del_user_verify_register(handle_verify_register);
- hook_del_user_identify(hook_user_identify);
-}
-
static void
user_add_host(myuser_t *mu)
{
user_add_host(u->myuser);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ hook_add_event("user_verify_register");
+ hook_add_user_verify_register(handle_verify_register);
+ hook_add_event("user_identify");
+ hook_add_user_identify(hook_user_identify);
+ counter = (CURRTIME << 8) % 100000;
+ if (counter < 0)
+ counter += 100000;
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ hook_del_user_verify_register(handle_verify_register);
+ hook_del_user_identify(hook_user_identify);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/gen_vhostonreg", MODULE_UNLOAD_CAPABILITY_OK)
command_t cmd_roulette = { "ROULETTE", N_("A game of Russian Roulette."), AC_NONE, 2, command_roulette, { .path = "contrib/roulette" } };
-void
-mod_init(module_t * m)
-{
- service_named_bind_command("gameserv", &cmd_roulette);
-
- service_named_bind_command("chanserv", &cmd_roulette);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("gameserv", &cmd_roulette);
-
- service_named_unbind_command("chanserv", &cmd_roulette);
-}
-
/*
* Handle reporting for both fantasy commands and normal commands in GameServ
* quickly and easily. Of course, sourceinfo has a vtable that can be manipulated,
gs_command_report(si, "%s", roulette_responses[rand() % 6 == 0]);
}
+void
+mod_init(module_t * m)
+{
+ service_named_bind_command("gameserv", &cmd_roulette);
+
+ service_named_bind_command("chanserv", &cmd_roulette);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("gameserv", &cmd_roulette);
+
+ service_named_unbind_command("chanserv", &cmd_roulette);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/gs_roulette", MODULE_UNLOAD_CAPABILITY_OK)
mowgli_list_t as_reqlist;
-static void
-mod_init(module_t *const restrict m)
-{
- announcesvs = service_add("announceserv", NULL);
-
- hook_add_event("user_drop");
- hook_add_user_drop(account_drop_request);
-
- hook_add_db_write(write_asreqdb);
- db_register_type_handler("AR", db_h_ar);
-
- if (announcesvs == NULL)
- return;
-
- service_bind_command(announcesvs, &as_help);
- service_bind_command(announcesvs, &as_request);
- service_bind_command(announcesvs, &as_waiting);
- service_bind_command(announcesvs, &as_reject);
- service_bind_command(announcesvs, &as_activate);
- service_bind_command(announcesvs, &as_cancel);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- hook_del_user_drop(account_drop_request);
- hook_del_db_write(write_asreqdb);
- db_unregister_type_handler("AR");
-
- if (announcesvs != NULL)
- {
- service_unbind_command(announcesvs, &as_help);
- service_unbind_command(announcesvs, &as_request);
- service_unbind_command(announcesvs, &as_waiting);
- service_unbind_command(announcesvs, &as_reject);
- service_unbind_command(announcesvs, &as_activate);
- service_unbind_command(announcesvs, &as_cancel);
-
- service_delete(announcesvs);
- announcesvs = NULL;
- }
-}
-
static void
write_asreqdb(database_handle_t *db)
{
command_fail(si, fault_badparams, _("You do not have a pending announcement to cancel."));
}
+static void
+mod_init(module_t *const restrict m)
+{
+ announcesvs = service_add("announceserv", NULL);
+
+ hook_add_event("user_drop");
+ hook_add_user_drop(account_drop_request);
+
+ hook_add_db_write(write_asreqdb);
+ db_register_type_handler("AR", db_h_ar);
+
+ if (announcesvs == NULL)
+ return;
+
+ service_bind_command(announcesvs, &as_help);
+ service_bind_command(announcesvs, &as_request);
+ service_bind_command(announcesvs, &as_waiting);
+ service_bind_command(announcesvs, &as_reject);
+ service_bind_command(announcesvs, &as_activate);
+ service_bind_command(announcesvs, &as_cancel);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ hook_del_user_drop(account_drop_request);
+ hook_del_db_write(write_asreqdb);
+ db_unregister_type_handler("AR");
+
+ if (announcesvs != NULL)
+ {
+ service_unbind_command(announcesvs, &as_help);
+ service_unbind_command(announcesvs, &as_request);
+ service_unbind_command(announcesvs, &as_waiting);
+ service_unbind_command(announcesvs, &as_reject);
+ service_unbind_command(announcesvs, &as_activate);
+ service_unbind_command(announcesvs, &as_cancel);
+
+ service_delete(announcesvs);
+ announcesvs = NULL;
+ }
+}
+
VENDOR_DECLARE_MODULE_V1("contrib/ircd_announceserv", MODULE_UNLOAD_CAPABILITY_OK, CONTRIB_VENDOR_JD_AND_TAROS)
command_t catserv_help = { "HELP", "Displays contextual help information.",
AC_NONE, 1, catserv_cmd_help, { .path = "help" } };
+static void
+catserv_cmd_meow(sourceinfo_t *si, int parc, char *parv[])
+{
+ command_success_nodata(si, "Meow!");
+}
+
+static void
+catserv_cmd_help(sourceinfo_t *si, int parc, char *parv[])
+{
+ command_help(si, si->service->commands);
+}
+
static void
mod_init(module_t *const restrict m)
{
service_delete(catserv);
}
-static void
-catserv_cmd_meow(sourceinfo_t *si, int parc, char *parv[])
-{
- command_success_nodata(si, "Meow!");
-}
-
-static void
-catserv_cmd_help(sourceinfo_t *si, int parc, char *parv[])
-{
- command_help(si, si->service->commands);
-}
-
SIMPLE_DECLARE_MODULE_V1("contrib/ircd_catserv", MODULE_UNLOAD_CAPABILITY_OK)
static void handle_channel_register(hook_channel_req_t *hdata);
-static void
-mod_init(module_t *const restrict m)
-{
- add_dupstr_conf_item("MLOCKTWEAK", &chansvs.me->conf_table, 0, &mlocktweak, "-t+c");
- hook_add_event("channel_register");
- hook_add_first_channel_register(handle_channel_register);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- del_conf_item("MLOCKTWEAK", &chansvs.me->conf_table);
- hook_del_channel_register(handle_channel_register);
-}
-
static void
handle_channel_register(hook_channel_req_t *hdata)
{
mc->mlock_off &= ~mc->mlock_on;
}
+static void
+mod_init(module_t *const restrict m)
+{
+ add_dupstr_conf_item("MLOCKTWEAK", &chansvs.me->conf_table, 0, &mlocktweak, "-t+c");
+ hook_add_event("channel_register");
+ hook_add_first_channel_register(handle_channel_register);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ del_conf_item("MLOCKTWEAK", &chansvs.me->conf_table);
+ hook_del_channel_register(handle_channel_register);
+}
+
VENDOR_DECLARE_MODULE_V1("contrib/mlocktweaker", MODULE_UNLOAD_CAPABILITY_OK, CONTRIB_VENDOR_NENOLOD)
command_t ms_fsend = { "FSEND", N_("Forcibly sends a memo to a user."),
PRIV_MARK, 2, ms_cmd_fsend, { .path = "contrib/fsend" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("memoserv", &ms_fsend);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("memoserv", &ms_fsend);
-}
-
static void
ms_cmd_fsend(sourceinfo_t *si, int parc, char *parv[])
{
return;
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("memoserv", &ms_fsend);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("memoserv", &ms_fsend);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/ms_fsend", MODULE_UNLOAD_CAPABILITY_OK)
command_t ns_ajoin = { "AJOIN", "Manages automatic-join on identify.", AC_AUTHENTICATED, 2, ns_cmd_ajoin, { .path = "contrib/ajoin" } };
-static void
-mod_init(module_t *const restrict m)
-{
- hook_add_event("user_identify");
- hook_add_user_identify(ajoin_on_identify);
- service_named_bind_command("nickserv", &ns_ajoin);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- hook_del_user_identify(ajoin_on_identify);
- service_named_unbind_command("nickserv", &ns_ajoin);
-}
-
static void
ajoin_on_identify(user_t *u)
{
}
}
+static void
+mod_init(module_t *const restrict m)
+{
+ hook_add_event("user_identify");
+ hook_add_user_identify(ajoin_on_identify);
+ service_named_bind_command("nickserv", &ns_ajoin);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ hook_del_user_identify(ajoin_on_identify);
+ service_named_unbind_command("nickserv", &ns_ajoin);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/ns_ajoin", MODULE_UNLOAD_CAPABILITY_OK)
command_t ns_fenforce = { "FENFORCE", "Enables or disables protection of another user's nicknames.", PRIV_USER_ADMIN, 2, ns_cmd_fenforce, { .path = "contrib/fenforce" } };
-static void
-mod_init(module_t *const restrict m)
-{
- MODULE_TRY_REQUEST_DEPENDENCY(m, "nickserv/enforce");
-
- service_named_bind_command("nickserv", &ns_fenforce);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("nickserv", &ns_fenforce);
-}
-
static void
ns_cmd_fenforce(sourceinfo_t *si, int parc, char *parv[])
{
}
}
+static void
+mod_init(module_t *const restrict m)
+{
+ MODULE_TRY_REQUEST_DEPENDENCY(m, "nickserv/enforce");
+
+ service_named_bind_command("nickserv", &ns_fenforce);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("nickserv", &ns_fenforce);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/ns_fenforce", MODULE_UNLOAD_CAPABILITY_OK)
command_t ns_forbid = { "FORBID", "Disallows use of a nickname.", PRIV_USER_ADMIN, 3, ns_cmd_forbid, { .path = "contrib/forbid" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("nickserv", &ns_forbid);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("nickserv", &ns_forbid);
-}
-
static void
make_forbid(sourceinfo_t *si, const char *account, const char *reason)
{
}
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("nickserv", &ns_forbid);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("nickserv", &ns_forbid);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/ns_forbid", MODULE_UNLOAD_CAPABILITY_OK)
command_t ns_fregister = { "FREGISTER", "Registers a nickname on behalf of another user.", PRIV_USER_FREGISTER, 20, ns_cmd_fregister, { .path = "contrib/fregister" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("nickserv", &ns_fregister);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("nickserv", &ns_fregister);
-}
-
static void
ns_cmd_fregister(sourceinfo_t *si, int parc, char *parv[])
{
hook_call_user_verify_register(&req);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("nickserv", &ns_fregister);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("nickserv", &ns_fregister);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/ns_fregister", MODULE_UNLOAD_CAPABILITY_OK)
command_t ns_generatehash = { "GENERATEHASH", "Generates a hash for SOPER.",
AC_NONE, 1, ns_cmd_generatehash, { .path = "contrib/generatehash" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("nickserv", &ns_generatehash);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("nickserv", &ns_generatehash);
-}
-
static void
ns_cmd_generatehash(sourceinfo_t *si, int parc, char *parv[])
{
logcommand(si, CMDLOG_GET, "GENERATEHASH");
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("nickserv", &ns_generatehash);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("nickserv", &ns_generatehash);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/ns_generatehash", MODULE_UNLOAD_CAPABILITY_OK)
command_t ns_generatepass = { "GENERATEPASS", "Generates a random password.",
AC_NONE, 1, ns_cmd_generatepass, { .path = "contrib/generatepass" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("nickserv", &ns_generatepass);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("nickserv", &ns_generatepass);
-}
-
static void
ns_cmd_generatepass(sourceinfo_t *si, int parc, char *parv[])
{
logcommand(si, CMDLOG_GET, "GENERATEPASS");
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("nickserv", &ns_generatepass);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("nickserv", &ns_generatepass);
+}
+
VENDOR_DECLARE_MODULE_V1("contrib/ns_generatepass", MODULE_UNLOAD_CAPABILITY_OK, CONTRIB_VENDOR_EPIPHANIC)
mowgli_list_t ns_maillist;
-static void
-mod_init(module_t *const restrict m)
-{
- if (!module_find_published("backend/opensex"))
- {
- slog(LG_INFO, "Module %s requires use of the OpenSEX database backend, refusing to load.", m->name);
- m->mflags = MODTYPE_FAIL;
- return;
- }
-
- hook_add_event("user_can_register");
- hook_add_user_can_register(check_registration);
- hook_add_db_write(write_gedb);
-
- db_register_type_handler("GE", db_h_ge);
-
- service_named_bind_command("nickserv", &ns_goodmail);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- hook_del_user_can_register(check_registration);
- hook_del_db_write(write_gedb);
-
- db_unregister_type_handler("GE");
-
- service_named_unbind_command("nickserv", &ns_goodmail);
-}
-
static void
write_gedb(database_handle_t *db)
{
}
}
+static void
+mod_init(module_t *const restrict m)
+{
+ if (!module_find_published("backend/opensex"))
+ {
+ slog(LG_INFO, "Module %s requires use of the OpenSEX database backend, refusing to load.", m->name);
+ m->mflags = MODTYPE_FAIL;
+ return;
+ }
+
+ hook_add_event("user_can_register");
+ hook_add_user_can_register(check_registration);
+ hook_add_db_write(write_gedb);
+
+ db_register_type_handler("GE", db_h_ge);
+
+ service_named_bind_command("nickserv", &ns_goodmail);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ hook_del_user_can_register(check_registration);
+ hook_del_db_write(write_gedb);
+
+ db_unregister_type_handler("GE");
+
+ service_named_unbind_command("nickserv", &ns_goodmail);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/ns_goodmail", MODULE_UNLOAD_CAPABILITY_OK)
command_t ns_listlogins = { "LISTLOGINS", N_("Lists details of clients authenticated as you."), AC_AUTHENTICATED, 1, ns_cmd_listlogins, { .path = "contrib/listlogins" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("nickserv", &ns_listlogins);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("nickserv", &ns_listlogins);
-}
-
static void
ns_cmd_listlogins(sourceinfo_t *si, int parc, char *parv[])
{
logcommand(si, CMDLOG_GET, "LISTLOGINS: (\2%d\2 matches)", matches);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("nickserv", &ns_listlogins);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("nickserv", &ns_listlogins);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/ns_listlogins", MODULE_UNLOAD_CAPABILITY_OK)
static void check_registration(hook_user_register_check_t *hdata);
int count_mx (const char *host);
-static void
-mod_init(module_t *const restrict m)
-{
- hook_add_event("user_can_register");
- hook_add_user_can_register(check_registration);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- hook_del_user_can_register(check_registration);
-}
-
static void
check_registration(hook_user_register_check_t *hdata)
{
return l;
}
+static void
+mod_init(module_t *const restrict m)
+{
+ hook_add_event("user_can_register");
+ hook_add_user_can_register(check_registration);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ hook_del_user_can_register(check_registration);
+}
+
VENDOR_DECLARE_MODULE_V1("contrib/ns_mxcheck", MODULE_UNLOAD_CAPABILITY_OK, CONTRIB_VENDOR_JAMIE_PENMAN)
#endif
int count_mx (const char *host);
-static void
-mod_init(module_t *const restrict m)
-{
- hook_add_event("user_can_register");
- hook_add_user_can_register(check_registration);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- hook_del_user_can_register(check_registration);
- childproc_delete_all(childproc_cb);
-}
-
static void
childproc_cb(pid_t pid, int status, void *data)
{
return l;
}
+static void
+mod_init(module_t *const restrict m)
+{
+ hook_add_event("user_can_register");
+ hook_add_user_can_register(check_registration);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ hook_del_user_can_register(check_registration);
+ childproc_delete_all(childproc_cb);
+}
+
VENDOR_DECLARE_MODULE_V1("contrib/ns_mxcheck_async", MODULE_UNLOAD_CAPABILITY_OK, CONTRIB_VENDOR_JAMIE_PENMAN)
#endif
command_t ns_sendpassmail = { "SENDPASSMAIL", N_("Email registration passwords."), AC_NONE, 2, ns_cmd_sendpassmail, { .path = "contrib/ns_sendpassmail" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("nickserv", &ns_sendpassmail);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("nickserv", &ns_sendpassmail);
-}
-
struct sendpassmail_state
{
sourceinfo_t *origin;
command_success_nodata(si, _("A password reset email has been sent for all accounts matching address \2%s\2, if any."), email);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("nickserv", &ns_sendpassmail);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("nickserv", &ns_sendpassmail);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/ns_sendpassmail", MODULE_UNLOAD_CAPABILITY_OK)
int running;
} update_command_proc;
-static void
-mod_init(module_t *const restrict m)
-{
- hook_add_event("db_saved");
- hook_add_db_saved(on_db_save);
-
- add_dupstr_conf_item("db_update_command", &conf_gi_table, 0, &command, NULL);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- hook_del_db_saved(on_db_save);
-
- del_conf_item("db_update_command", &conf_gi_table);
-}
-
static void
update_command_finished(pid_t pid, int status, void *data)
{
}
}
+static void
+mod_init(module_t *const restrict m)
+{
+ hook_add_event("db_saved");
+ hook_add_db_saved(on_db_save);
+
+ add_dupstr_conf_item("db_update_command", &conf_gi_table, 0, &command, NULL);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ hook_del_db_saved(on_db_save);
+
+ del_conf_item("db_update_command", &conf_gi_table);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/on_db_save", MODULE_UNLOAD_CAPABILITY_OK)
#endif
command_t os_defcon = { "DEFCON", N_("Implements Defense Condition lockdowns."), PRIV_ADMIN, 1, os_cmd_defcon, { .path = "contrib/defcon" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("operserv", &os_defcon);
- TAINT_ON("Using os_defcon", "Use of os_defcon is unsupported and not recommend. Use only at your own risk.");
-
- /* Hooks for all the stuff defcon disables */
- hook_add_event("user_can_register");
- hook_add_user_can_register(defcon_nouserreg);
- hook_add_event("channel_can_register");
- hook_add_channel_can_register(defcon_nochanreg);
- hook_add_event("user_add");
- hook_add_user_add(defcon_useradd);
-
- service_t *svs;
- svs = service_find("operserv");
- add_duration_conf_item("DEFCON_TIMEOUT", &svs->conf_table, 0, &defcon_timeout, "m", 900);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("operserv", &os_defcon);
-
- hook_del_user_can_register(defcon_nouserreg);
- hook_del_channel_can_register(defcon_nochanreg);
- hook_del_user_add(defcon_useradd);
-
- service_t *svs;
- svs = service_find("operserv");
- del_conf_item("DEFCON_TIMEOUT", &svs->conf_table);
-
- if (defcon_timer != NULL)
- mowgli_timer_destroy(base_eventloop, defcon_timer);
-}
-
static void
defcon_nouserreg(hook_user_register_check_t *hdata)
{
logcommand(si, CMDLOG_ADMIN, "DEFCON: \2%d\2", level);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("operserv", &os_defcon);
+ TAINT_ON("Using os_defcon", "Use of os_defcon is unsupported and not recommend. Use only at your own risk.");
+
+ /* Hooks for all the stuff defcon disables */
+ hook_add_event("user_can_register");
+ hook_add_user_can_register(defcon_nouserreg);
+ hook_add_event("channel_can_register");
+ hook_add_channel_can_register(defcon_nochanreg);
+ hook_add_event("user_add");
+ hook_add_user_add(defcon_useradd);
+
+ service_t *svs;
+ svs = service_find("operserv");
+ add_duration_conf_item("DEFCON_TIMEOUT", &svs->conf_table, 0, &defcon_timeout, "m", 900);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("operserv", &os_defcon);
+
+ hook_del_user_can_register(defcon_nouserreg);
+ hook_del_channel_can_register(defcon_nochanreg);
+ hook_del_user_add(defcon_useradd);
+
+ service_t *svs;
+ svs = service_find("operserv");
+ del_conf_item("DEFCON_TIMEOUT", &svs->conf_table);
+
+ if (defcon_timer != NULL)
+ mowgli_timer_destroy(base_eventloop, defcon_timer);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/os_defcon", MODULE_UNLOAD_CAPABILITY_OK)
PRIV_HELPER, 0, os_cmd_helpme, { .path = "contrib/helpme" } };
static void
-mod_init(module_t *const restrict m)
+os_cmd_helpme(sourceinfo_t *si, int parc, char *parv[])
{
- service_named_bind_command("operserv", &os_helpme);
+ service_t *svs;
+
+ svs = service_find("operserv");
+
+ sts(":%s MODE %s :+h", svs->nick, si->su->nick);
+ command_success_nodata(si, _("You are now a network helper."));
}
static void
-mod_deinit(const module_unload_intent_t intent)
+mod_init(module_t *const restrict m)
{
- service_named_unbind_command("operserv", &os_helpme);
+ service_named_bind_command("operserv", &os_helpme);
}
static void
-os_cmd_helpme(sourceinfo_t *si, int parc, char *parv[])
+mod_deinit(const module_unload_intent_t intent)
{
- service_t *svs;
-
- svs = service_find("operserv");
-
- sts(":%s MODE %s :+h", svs->nick, si->su->nick);
- command_success_nodata(si, _("You are now a network helper."));
+ service_named_unbind_command("operserv", &os_helpme);
}
VENDOR_DECLARE_MODULE_V1("contrib/os_helpme", MODULE_UNLOAD_CAPABILITY_OK, CONTRIB_VENDOR_ELLY)
mowgli_list_t os_monlist;
-static void
-mod_init(module_t *const restrict m)
-{
- if (!module_find_published("backend/opensex"))
- {
- slog(LG_INFO, "Module %s requires use of the OpenSEX database backend, refusing to load.", m->name);
- m->mflags = MODTYPE_FAIL;
- return;
- }
-
- hook_add_event("channel_join");
- hook_add_channel_join(watch_user_joins);
- hook_add_db_write(write_jmdb);
-
- db_register_type_handler("JM", db_h_jm);
-
- service_named_bind_command("operserv", &os_joinmon);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- hook_del_channel_join(watch_user_joins);
- hook_del_db_write(write_jmdb);
-
- db_unregister_type_handler("JM");
-
- service_named_unbind_command("operserv", &os_joinmon);
-}
-
static void
write_jmdb(database_handle_t *db)
{
}
}
+static void
+mod_init(module_t *const restrict m)
+{
+ if (!module_find_published("backend/opensex"))
+ {
+ slog(LG_INFO, "Module %s requires use of the OpenSEX database backend, refusing to load.", m->name);
+ m->mflags = MODTYPE_FAIL;
+ return;
+ }
+
+ hook_add_event("channel_join");
+ hook_add_channel_join(watch_user_joins);
+ hook_add_db_write(write_jmdb);
+
+ db_register_type_handler("JM", db_h_jm);
+
+ service_named_bind_command("operserv", &os_joinmon);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ hook_del_channel_join(watch_user_joins);
+ hook_del_db_write(write_jmdb);
+
+ db_unregister_type_handler("JM");
+
+ service_named_unbind_command("operserv", &os_joinmon);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/os_joinmon", MODULE_UNLOAD_CAPABILITY_NEVER)
command_t os_kill = { "KILL", "Kill a user with Services.", PRIV_OMODE, 2, os_cmd_kill, { .path = "contrib/kill" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("operserv", &os_kill);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("operserv", &os_kill);
-}
-
static void
os_cmd_kill(sourceinfo_t *si, int parc, char *parv[])
{
kill_user(si->service->me, target, "Requested: %s", parv[1]);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("operserv", &os_kill);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("operserv", &os_kill);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/os_kill", MODULE_UNLOAD_CAPABILITY_OK)
static void klinechan_check_join(hook_channel_joinpart_t *hdata);
static void klinechan_show_info(hook_channel_req_t *hdata);
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("operserv", &os_klinechan);
- service_named_bind_command("operserv", &os_listklinechans);
- hook_add_event("channel_join");
- hook_add_first_channel_join(klinechan_check_join);
- hook_add_event("channel_info");
- hook_add_channel_info(klinechan_show_info);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("operserv", &os_klinechan);
- service_named_unbind_command("operserv", &os_listklinechans);
- hook_del_channel_join(klinechan_check_join);
- hook_del_channel_info(klinechan_show_info);
-}
-
static void
klinechan_check_join(hook_channel_joinpart_t *hdata)
{
N_("\2%d\2 matches for pattern \2%s\2"), matches), matches, pattern);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("operserv", &os_klinechan);
+ service_named_bind_command("operserv", &os_listklinechans);
+ hook_add_event("channel_join");
+ hook_add_first_channel_join(klinechan_check_join);
+ hook_add_event("channel_info");
+ hook_add_channel_info(klinechan_show_info);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("operserv", &os_klinechan);
+ service_named_unbind_command("operserv", &os_listklinechans);
+ hook_del_channel_join(klinechan_check_join);
+ hook_del_channel_info(klinechan_show_info);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/os_klinechan", MODULE_UNLOAD_CAPABILITY_OK)
command_t os_modeall = { "MODEALL", N_("Changes modes on all channels."), PRIV_OMODE, 2, os_cmd_modeall, { .path = "contrib/os_modeall" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("operserv", &os_modeall);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("operserv", &os_modeall);
-}
-
static void
set_channel_mode(service_t *s, channel_t *c, int modeparc, char *modeparv[])
{
logcommand(si, CMDLOG_ADMIN, "MODEALL: \2%s\2", mode);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("operserv", &os_modeall);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("operserv", &os_modeall);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/os_modeall", MODULE_UNLOAD_CAPABILITY_OK)
int spamming;
-static void
-mod_init(module_t *const restrict m)
-{
- spamming = 0;
-
- service_named_bind_command("operserv", &os_pingspam);
- service_named_bind_command("operserv", &os_autopingspam);
-
- hook_add_event("user_add");
- hook_add_user_add(user_add_hook);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("operserv", &os_pingspam);
- service_named_unbind_command("operserv", &os_autopingspam);
- hook_del_user_add(user_add_hook);
-}
-
static void
user_add_hook(hook_user_nick_t *data)
{
}
}
+static void
+mod_init(module_t *const restrict m)
+{
+ spamming = 0;
+
+ service_named_bind_command("operserv", &os_pingspam);
+ service_named_bind_command("operserv", &os_autopingspam);
+
+ hook_add_event("user_add");
+ hook_add_user_add(user_add_hook);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("operserv", &os_pingspam);
+ service_named_unbind_command("operserv", &os_autopingspam);
+ hook_del_user_add(user_add_hook);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/os_pingspam", MODULE_UNLOAD_CAPABILITY_OK)
static connection_t *kq_conn;
-static void
-mod_init(module_t *const restrict m)
-{
- int kq;
-
- kq = kqueue();
- if (kq == -1)
- {
- m->mflags = MODTYPE_FAIL;
- return;
- }
- kq_conn = connection_add("procwatch kqueue", kq, 0, procwatch_readhandler, NULL);
-
- service_named_bind_command("operserv", &os_procwatch);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- if (kq_conn != NULL)
- connection_close_soon(kq_conn);
- service_named_unbind_command("operserv", &os_procwatch);
-}
-
static void
procwatch_readhandler(connection_t *cptr)
{
command_success_nodata(si, "Added pid %ld to list.", v);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ int kq;
+
+ kq = kqueue();
+ if (kq == -1)
+ {
+ m->mflags = MODTYPE_FAIL;
+ return;
+ }
+ kq_conn = connection_add("procwatch kqueue", kq, 0, procwatch_readhandler, NULL);
+
+ service_named_bind_command("operserv", &os_procwatch);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ if (kq_conn != NULL)
+ connection_close_soon(kq_conn);
+ service_named_unbind_command("operserv", &os_procwatch);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/os_procwatch", MODULE_UNLOAD_CAPABILITY_OK)
#endif
command_t os_loadchanmodes = { "LOADCHANMODES", "Restores channel modes from a file.",
PRIV_ADMIN, 1, os_cmd_loadchanmodes, { .path = "contrib/loadchanmodes" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("operserv", &os_savechanmodes);
- service_named_bind_command("operserv", &os_loadchanmodes);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("operserv", &os_savechanmodes);
- service_named_unbind_command("operserv", &os_loadchanmodes);
-}
-
static void
os_cmd_savechanmodes(sourceinfo_t *si, int parc, char *parv[])
{
chansvs.nick);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("operserv", &os_savechanmodes);
+ service_named_bind_command("operserv", &os_loadchanmodes);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("operserv", &os_savechanmodes);
+ service_named_unbind_command("operserv", &os_loadchanmodes);
+}
+
VENDOR_DECLARE_MODULE_V1("contrib/os_savechanmodes", MODULE_UNLOAD_CAPABILITY_OK, CONTRIB_VENDOR_JILLEST)
command_t os_tabletest = { "TABLETEST", "Table test.", AC_NONE, 0, os_cmd_tabletest, { .path = "" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("operserv", &os_tabletest);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("operserv", &os_tabletest);
-}
-
static void
os_cmd_tabletest(sourceinfo_t *si, int parc, char *parv[])
{
atheme_object_unref(t);
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("operserv", &os_tabletest);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("operserv", &os_tabletest);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/os_tabletest", MODULE_UNLOAD_CAPABILITY_OK)
.cmd_success_string = testcmd_command_success_string
};
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("operserv", &os_testcmd);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- service_named_unbind_command("operserv", &os_testcmd);
-}
-
static void
testcmd_command_fail(sourceinfo_t *si, cmd_faultcode_t code, const char *message)
{
command_success_nodata(si, "Command returned without giving a result");
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("operserv", &os_testcmd);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ service_named_unbind_command("operserv", &os_testcmd);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/os_testcmd", MODULE_UNLOAD_CAPABILITY_OK)
command_t os_testproc = { "TESTPROC", "Does something with child processes.",
AC_NONE, 0, os_cmd_testproc, { .path = "contrib/testproc" } };
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("operserv", &os_testproc);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- if (procdata.pip != NULL)
- connection_close_soon(procdata.pip);
- service_named_unbind_command("operserv", &os_testproc);
-}
-
static void
testproc_recvqhandler(connection_t *cptr)
{
}
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("operserv", &os_testproc);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ if (procdata.pip != NULL)
+ connection_close_soon(procdata.pip);
+ service_named_unbind_command("operserv", &os_testproc);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/os_testproc", MODULE_UNLOAD_CAPABILITY_OK)
#endif
mowgli_patricia_t *trace_cmdtree = NULL;
mowgli_patricia_t *trace_acttree = NULL;
-static void
-mod_init(module_t *const restrict m)
-{
- service_named_bind_command("operserv", &os_trace);
-
- trace_cmdtree = mowgli_patricia_create(strcasecanon);
- mowgli_patricia_add(trace_cmdtree, "REGEXP", &trace_regexp);
- mowgli_patricia_add(trace_cmdtree, "SERVER", &trace_server);
- mowgli_patricia_add(trace_cmdtree, "GLOB", &trace_glob);
- mowgli_patricia_add(trace_cmdtree, "CHANNEL", &trace_channel);
- mowgli_patricia_add(trace_cmdtree, "NICKAGE", &trace_nickage);
- mowgli_patricia_add(trace_cmdtree, "NUMCHAN", &trace_numchan);
- mowgli_patricia_add(trace_cmdtree, "IDENTIFIED", &trace_identified);
-
- trace_acttree = mowgli_patricia_create(strcasecanon);
- mowgli_patricia_add(trace_acttree, "PRINT", &trace_print);
- mowgli_patricia_add(trace_acttree, "KILL", &trace_kill);
- mowgli_patricia_add(trace_acttree, "AKILL", &trace_akill);
- mowgli_patricia_add(trace_acttree, "COUNT", &trace_count);
-}
-
-static void
-mod_deinit(const module_unload_intent_t intent)
-{
- mowgli_patricia_destroy(trace_cmdtree, NULL, NULL);
-
- service_named_unbind_command("operserv", &os_trace);
-}
-
#define MAXMATCHES_DEF 1000
static bool os_cmd_trace_run(sourceinfo_t *si, trace_action_constructor_t *actcons, trace_action_t* act, mowgli_list_t *crit, char *args);
return true;
}
+static void
+mod_init(module_t *const restrict m)
+{
+ service_named_bind_command("operserv", &os_trace);
+
+ trace_cmdtree = mowgli_patricia_create(strcasecanon);
+ mowgli_patricia_add(trace_cmdtree, "REGEXP", &trace_regexp);
+ mowgli_patricia_add(trace_cmdtree, "SERVER", &trace_server);
+ mowgli_patricia_add(trace_cmdtree, "GLOB", &trace_glob);
+ mowgli_patricia_add(trace_cmdtree, "CHANNEL", &trace_channel);
+ mowgli_patricia_add(trace_cmdtree, "NICKAGE", &trace_nickage);
+ mowgli_patricia_add(trace_cmdtree, "NUMCHAN", &trace_numchan);
+ mowgli_patricia_add(trace_cmdtree, "IDENTIFIED", &trace_identified);
+
+ trace_acttree = mowgli_patricia_create(strcasecanon);
+ mowgli_patricia_add(trace_acttree, "PRINT", &trace_print);
+ mowgli_patricia_add(trace_acttree, "KILL", &trace_kill);
+ mowgli_patricia_add(trace_acttree, "AKILL", &trace_akill);
+ mowgli_patricia_add(trace_acttree, "COUNT", &trace_count);
+}
+
+static void
+mod_deinit(const module_unload_intent_t intent)
+{
+ mowgli_patricia_destroy(trace_cmdtree, NULL, NULL);
+
+ service_named_unbind_command("operserv", &os_trace);
+}
+
SIMPLE_DECLARE_MODULE_V1("contrib/os_trace", MODULE_UNLOAD_CAPABILITY_OK)