void _modinit(module_t *m) { chanfix_persist_record_t *rec = mowgli_global_storage_get("atheme.chanfix.main.persist"); chanfix_gather_init(rec); if (rec != NULL) { free(rec); return; } chanfix = service_add("chanfix", NULL); service_bind_command(chanfix, &cmd_list); service_bind_command(chanfix, &cmd_chanfix); service_bind_command(chanfix, &cmd_scores); service_bind_command(chanfix, &cmd_info); service_bind_command(chanfix, &cmd_help); service_bind_command(chanfix, &cmd_mark); service_bind_command(chanfix, &cmd_nofix); hook_add_event("channel_can_register"); hook_add_channel_can_register(chanfix_can_register); add_bool_conf_item("AUTOFIX", &chanfix->conf_table, 0, &chanfix_do_autofix, false); chanfix_autofix_timer = mowgli_timer_add(base_eventloop, "chanfix_autofix", chanfix_autofix_ev, NULL, 60); }
/* chanfix - channel fixing service * Copyright (c) 2014-2016 Xtheme Development Group * Copyright (c) 2010 Atheme Development Group */ #include "atheme.h" #include "chanfix.h" static mowgli_eventloop_timer_t *chanfix_autofix_timer = NULL; struct service *chanfix; static void mod_init(struct module *const restrict m) { struct chanfix_persist_record *rec = mowgli_global_storage_get("atheme.chanfix.main.persist"); chanfix_gather_init(rec); if (rec != NULL) { sfree(rec); return; } chanfix = service_add("chanfix", NULL); service_bind_command(chanfix, &cmd_list); service_bind_command(chanfix, &cmd_chanfix); service_bind_command(chanfix, &cmd_scores); service_bind_command(chanfix, &cmd_info); service_bind_command(chanfix, &cmd_help);