X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=cmd_neonserv_deopall.c;h=f9ee763b1fb254d193d80e07ff880d4c51e18db4;hb=795115bf680185ae01043bd1222b78bfed8c1d87;hp=8fe1f8248a82f42bf505d566db6ad3baa0af972f;hpb=92458cdb1c936fbf64163178d6ea9c080c77c6da;p=NeonServV5.git diff --git a/cmd_neonserv_deopall.c b/cmd_neonserv_deopall.c index 8fe1f82..f9ee763 100644 --- a/cmd_neonserv_deopall.c +++ b/cmd_neonserv_deopall.c @@ -1,18 +1,21 @@ +#include "cmd_neonserv.h" + /* * argv[0] (optional) nick mask */ static USERLIST_CALLBACK(neonserv_cmd_deopall_userlist_lookup); -static void neonserv_cmd_deopall_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, char **argv, int argc); +static void neonserv_cmd_deopall_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char **argv, int argc); struct neonserv_cmd_deopall_cache { struct ClientSocket *client, *textclient; struct UserNode *user; + struct Event *event; char **argv; int argc; }; -static CMD_BIND(neonserv_cmd_deopall) { +CMD_BIND(neonserv_cmd_deopall) { struct neonserv_cmd_deopall_cache *cache = malloc(sizeof(*cache)); if (!cache) { perror("malloc() failed"); @@ -21,6 +24,7 @@ static CMD_BIND(neonserv_cmd_deopall) { cache->client = client; cache->textclient = getTextBot(); cache->user = user; + cache->event = event; cache->argv = calloc(argc, sizeof(char*)); int i; for(i = 0; i < argc; i++) { @@ -32,7 +36,7 @@ static CMD_BIND(neonserv_cmd_deopall) { static USERLIST_CALLBACK(neonserv_cmd_deopall_userlist_lookup) { struct neonserv_cmd_deopall_cache *cache = data; - neonserv_cmd_deopall_async1(cache->client, cache->textclient, cache->user, chan, cache->argv, cache->argc); + neonserv_cmd_deopall_async1(cache->client, cache->textclient, cache->user, chan, cache->event, cache->argv, cache->argc); int i; for(i = 0; i < cache->argc; i++) { free(cache->argv[i]); @@ -40,16 +44,11 @@ static USERLIST_CALLBACK(neonserv_cmd_deopall_userlist_lookup) { free(cache); } -static void neonserv_cmd_deopall_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, char **argv, int argc) { +static void neonserv_cmd_deopall_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char **argv, int argc) { int issuer_access, victim_access, done_users = 0; char *nickmask = NULL; struct ChanUser *chanuser; struct ModeBuffer *modeBuf; - check_mysql(); - if(!checkChannelAccess(user, chan, "channel_canop", 1, 0)) { - reply(getTextBot(), user, "NS_ACCESS_DENIED"); - return; - } if(argc > 0) nickmask = argv[0]; modeBuf = initModeBuffer(client, chan); @@ -64,4 +63,6 @@ static void neonserv_cmd_deopall_async1(struct ClientSocket *client, struct Clie } freeModeBuffer(modeBuf); reply(getTextBot(), user, "NS_DEOPALL_DONE", done_users, chan->name); + if(done_users) + logEvent(event); }