if (!lua_isstring(ps, 1))
LUA_RETURN(ps, LUA_FAIL);
- a4statsdb->squery(a4statsdb, "INSERT INTO ? (name, timestamp) VALUES (?)", "Tst", "channels", lua_tostring(ps, 1), time(NULL));
+ a4statsdb->squery(a4statsdb, "INSERT INTO ? (name, timestamp) VALUES (?, ?)", "Tst", "channels", lua_tostring(ps, 1), time(NULL));
+ a4statsdb->squery(a4statsdb, "UPDATE ? SET active = 1 WHERE name = ?", "Ts", "channels", lua_tostring(ps, 1));
LUA_RETURN(ps, LUA_OK);
}
static void a4stats_hook_unloadscript(int hooknum, void *arg) {
db_callback_info **pnext, *dci;
- lua_list *l;
+ lua_State *l = arg;
for (pnext = &dci_head; *pnext; pnext = &((*pnext)->next)) {
dci = *pnext;
- if (dci->interp == arg) {
+ if (dci->interp == l) {
*pnext = dci->next;
free(dci);
}
}
-
- for (l = lua_head; l; l = l->next) {
- lua_unregister(l->l, "a4_enable_channel");
- lua_unregister(l->l, "a4_disable_channel");
- lua_unregister(l->l, "a4_fetch_channels");
- lua_unregister(l->l, "a4_add_kick");
- lua_unregister(l->l, "a4_add_topic");
- lua_unregister(l->l, "a4_fetch_user");
- lua_unregister(l->l, "a4_update_user");
- lua_unregister(l->l, "a4_escape_string");
- }
}
void _init(void) {
for (l = lua_head; l;l = l->next) {
a4stats_hook_loadscript(HOOK_LUA_UNLOADSCRIPT, l->l);
+
+ lua_unregister(l->l, "a4_enable_channel");
+ lua_unregister(l->l, "a4_disable_channel");
+ lua_unregister(l->l, "a4_fetch_channels");
+ lua_unregister(l->l, "a4_add_kick");
+ lua_unregister(l->l, "a4_add_topic");
+ lua_unregister(l->l, "a4_fetch_user");
+ lua_unregister(l->l, "a4_update_user");
+ lua_unregister(l->l, "a4_escape_string");
}
deregisterhook(HOOK_LUA_LOADSCRIPT, a4stats_hook_loadscript);
return 0;
}
+static int handle_setprivacy(struct rline *ri, int argc, char **argv) {
+ a4statsdb->squery(a4statsdb, "UPDATE ? SET privacy = ? WHERE name = ?", "Tss", "channels", argv[1], argv[0]);
+ return ri_final(ri);
+}
+
void _init(void) {
a4stats_node = register_service("a4stats");
if (!a4stats_node)
register_handler(a4stats_node, "getkicks", 1, handle_getkicks);
register_handler(a4stats_node, "gettopics", 1, handle_gettopics);
register_handler(a4stats_node, "getuser", 3, handle_getuser);
+ register_handler(a4stats_node, "setprivacy", 2, handle_setprivacy);
}
void _fini(void) {