From: Paul Date: Mon, 29 Jul 2013 20:21:22 +0000 (+0100) Subject: FAKEUSER: more tidyup X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/commitdiff_plain/8bbe812bbe5a177e07a30121b2ad0c77dcd29a27?hp=e0f6f3b8b4c3f99b38144697d287179f637398d0 FAKEUSER: more tidyup --HG-- branch : fakeuser --- diff --git a/fakeusers/fakeusers.c b/fakeusers/fakeusers.c index 3aef0732..6fcedc23 100644 --- a/fakeusers/fakeusers.c +++ b/fakeusers/fakeusers.c @@ -36,40 +36,20 @@ typedef struct fakeuser { fakeuser *fakeuserlist = NULL; -void fakeuser_cleanup(); -int fakeuser_loaddb(); -void fakeusers_load(const DBAPIResult *res, void *arg); -void fakeuser_handler(nick *user, int command, void **params); -int fakeadd(void *sender, int cargc, char **cargv); -int fakelist(void *sender, int cargc, char **cargv); -int fakekill(void *sender, int cargc, char **cargv); -void schedulefakeuser(void *arg); -fakeuser *findfakeuserbynick(char *nick); -void fake_remove(char *nickname); -fakeuser *fake_add(fakeuser *details); +static void fakeuser_cleanup(); +static int fakeuser_loaddb(); +static void fakeusers_load(const DBAPIResult *res, void *arg); +static void fakeuser_handler(nick *user, int command, void **params); +static int fakeadd(void *sender, int cargc, char **cargv); +static int fakelist(void *sender, int cargc, char **cargv); +static int fakekill(void *sender, int cargc, char **cargv); +static void schedulefakeuser(void *arg); +static fakeuser *findfakeuserbynick(char *nick); +static void fake_remove(char *nickname); +static fakeuser *fake_add(fakeuser *details); static DBAPIConn *nofudb; -void _init() { - if (!fakeuser_loaddb()) { - Error("fakeuser", ERR_FATAL, "Cannot load database"); - return; - } - - registercontrolhelpcmd("fakeuser", NO_OPER, 4, &fakeadd, "Usage: FAKEUSER nick \nCreates a fake user."); - registercontrolhelpcmd("fakelist", NO_OPER, 0, &fakelist, "Usage: FAKELIST\nLists all fake users."); - registercontrolhelpcmd("fakekill", NO_OPER, 2, &fakekill, "Usage: FAKEKILL nick \nRemoves a fake user"); - -} - -void _fini() { - fakeuser_cleanup(); - deleteallschedules(schedulefakeuser); - deregistercontrolcmd("fakeuser", &fakeadd); - deregistercontrolcmd("fakelist", &fakelist); - deregistercontrolcmd("fakekill", &fakekill); -} - void fakeuser_cleanup() { fakeuser *fake; void *next; @@ -131,21 +111,6 @@ void fakeusers_load(const DBAPIResult *res, void *arg) { res->clear(res); } -fakeuser *getdetails(nick *user) { - fakeuser *details; - details = malloc(sizeof(fakeuser)); - - if (!details) - return NULL; - - strlcpy(details->nick, user->nick, NICKLEN + 1); - strlcpy(details->ident, user->ident, USERLEN + 1); - strlcpy(details->host, user->host->name->content, HOSTLEN + 1); - strlcpy(details->realname, user->realname->name->content, REALLEN + 1); - details->lastkill = 0; - return details; -} - nick *register_fakeuseronnet(fakeuser *details) { nick *user; @@ -186,6 +151,9 @@ void fake_remove(char *nickname) { else prev->next = fake->next; + if(fake->user) + deregisterlocaluser(fake->user, "Signing off"); + free(fake); return; } @@ -275,7 +243,7 @@ int fakelist(void *sender, int cargc, char **cargv) { for (fake = fakeuserlist; fake; fake = fake->next) { if (!fake->user) - controlreply(sender, "%s!%s@%s (%s) %s - RECONNECTING", fake->nick, fake->ident, + controlreply(sender, "%s!%s@%s (%s) - RECONNECTING", fake->nick, fake->ident, fake->host, fake->realname); else controlreply(sender, "%s!%s@%s (%s)", fake->nick, fake->ident, @@ -306,13 +274,6 @@ int fakekill(void *sender, int cargc, char **cargv) { controlwall(NO_OPER, NL_FAKEUSERS, "Fake user %s!%s@%s (%s) removed by %s/%s", fake->nick, fake->ident, fake->host, fake->realname, ((nick *)sender)->nick, ((nick *)sender)->authname); - if (fake->user) { - if (cargc > 1) - deregisterlocaluser(fake->user, cargv[1]); - else - deregisterlocaluser(fake->user, "Signing off"); - } - fake_remove(cargv[0]); return CMD_OK; } @@ -320,21 +281,36 @@ int fakekill(void *sender, int cargc, char **cargv) { void schedulefakeuser(void *arg) { fakeuser *fake; - for (fake = fakeuserlist; fake; fake = fake->next) { - if (!fake->user) { + for (fake = fakeuserlist; fake; fake = fake->next) + if (!fake->user) fake->user = register_fakeuseronnet(fake); - } - } } fakeuser *findfakeuserbynick(char *nick) { fakeuser *fake; - for (fake = fakeuserlist; fake; fake = fake->next) { - if (!ircd_strcmp(nick, fake->nick)) { + for (fake = fakeuserlist; fake; fake = fake->next) + if (!ircd_strcmp(nick, fake->nick)) return fake; - } - } return NULL; } + +void _init() { + if (!fakeuser_loaddb()) { + Error("fakeuser", ERR_FATAL, "Cannot load database"); + return; + } + + registercontrolhelpcmd("fakeuser", NO_OPER, 4, &fakeadd, "Usage: FAKEUSER nick \nCreates a fake user."); + registercontrolhelpcmd("fakelist", NO_OPER, 0, &fakelist, "Usage: FAKELIST\nLists all fake users."); + registercontrolhelpcmd("fakekill", NO_OPER, 2, &fakekill, "Usage: FAKEKILL nick\nRemoves a fake user"); +} + +void _fini() { + fakeuser_cleanup(); + deleteallschedules(schedulefakeuser); + deregistercontrolcmd("fakeuser", &fakeadd); + deregistercontrolcmd("fakelist", &fakelist); + deregistercontrolcmd("fakekill", &fakekill); +}