void noperserv_oper_detection(int hooknum, void *arg);
void noperserv_reply(nick *np, char *format, ...);
+int init = 0;
+
void _init() {
- noperserv_ext = registernickext("noperserv");
+ if(!noperserv_load_db())
+ return;
- noperserv_load_db();
+ noperserv_ext = registernickext("noperserv");
noperserv_setup_hooks();
registercontrolhelpcmd("deluser", NO_OPERED | NO_ACCOUNT, 2, &noperserv_deluser, "Syntax: DELUSER <nickname|#authname>\nDeletes the specified user.");
registerhook(HOOK_NICK_MODEOPER, &noperserv_oper_detection);
+
+ init = 1;
}
#ifdef BROKEN_DLCLOSE
#else
void _fini() {
#endif
+ if(!init)
+ return;
+
deregisterhook(HOOK_NICK_MODEOPER, &noperserv_oper_detection);
deregistercontrolcmd("noticeflags", &noperserv_noticeflags);
void nopserserv_delete_from_autheduser(nick *np, no_autheduser *au);
-void noperserv_load_db(void) {
+int noperserv_load_db(void) {
+ if(!pqconnected())
+ return 0;
+
if(db_loaded)
noperserv_cleanup_db();
pqasyncquery(noperserv_load_users, NULL,
"SELECT ID, authname, flags, noticelevel FROM noperserv.users");
+
+ return 1;
}
void noperserv_load_users(PGconn *dbconn, void *arg) {
no_nicklist *nick;
} no_autheduser;
-void noperserv_load_db(void);
+int noperserv_load_db(void);
void noperserv_cleanup_db(void);
extern no_autheduser *authedusers;