X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fcmd_neonserv_deopall.c;h=7b1cdb23ba1d6b0753c8188e363ed6c75e15eac5;hb=b53d0c5f88063f075a48a0426f9d5d6b3490b9fc;hp=74de2940b9874122ad468e2a53a3b4dd583704cb;hpb=95fed4deda0319bee515e44ceec0c77061a2c04e;p=NeonServV5.git diff --git a/src/cmd_neonserv_deopall.c b/src/cmd_neonserv_deopall.c index 74de294..7b1cdb2 100644 --- a/src/cmd_neonserv_deopall.c +++ b/src/cmd_neonserv_deopall.c @@ -1,5 +1,5 @@ -/* cmd_neonserv_deopall.c - NeonServ v5.0 - * Copyright (C) 2011 Philipp Kreil (pk910) +/* cmd_neonserv_deopall.c - NeonServ v5.3 + * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -57,6 +57,7 @@ static USERLIST_CALLBACK(neonserv_cmd_deopall_userlist_lookup) { for(i = 0; i < cache->argc; i++) { free(cache->argv[i]); } + free(cache->argv); free(cache); } @@ -68,11 +69,11 @@ static void neonserv_cmd_deopall_async1(struct ClientSocket *client, struct Clie if(argc > 0) nickmask = argv[0]; modeBuf = initModeBuffer(client, chan); - issuer_access = getChannelAccess(user, chan, 0); + issuer_access = getChannelAccess(user, chan); for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = getChannelUsers(chan, chanuser)) { if(nickmask && match(nickmask, chanuser->user->nick)) continue; - victim_access = getChannelAccess(user, chan, 0); - if(victim_access >= issuer_access) continue; + victim_access = getChannelAccess(chanuser->user, chan); + if(victim_access >= issuer_access || isNetworkService(chanuser->user)) continue; if(!(chanuser->flags & CHANUSERFLAG_OPPED)) continue; modeBufferDeop(modeBuf, chanuser->user->nick); done_users++;