]> jfr.im git - irc/quakenet/newserv.git/blame - chanserv/chancmds/unbanme.c
Add documentation files.
[irc/quakenet/newserv.git] / chanserv / chancmds / unbanme.c
CommitLineData
1dd6d55d 1/* Automatically generated by refactor.pl.
2 *
3 *
4 * CMDNAME: unbanme
5 * CMDLEVEL: QCMD_AUTHED
6 * CMDARGS: 1
7 * CMDDESC: Removes any bans affecting you from a channel.
8 * CMDFUNC: csc_dounbanme
9 * CMDPROTO: int csc_dounbanme(void *source, int cargc, char **cargv);
1e32d528 10 * CMDHELP: Usage: UNBANME <channel>
11 * CMDHELP: This command removes any channel bans which affect you from a channel. It does
12 * CMDHELP: not affect persistent bans set by PERMBAN and TEMPBAN. Where:
13 * CMDHELP: channel - channel to use
14 * CMDHELP: UNBANME requires operator (+o) access on the named channel.
1dd6d55d 15 */
16
17#include "../chanserv.h"
18#include "../../nick/nick.h"
19#include "../../lib/flags.h"
20#include "../../lib/irc_string.h"
21#include "../../channel/channel.h"
22#include "../../parser/parser.h"
23#include "../../irc/irc.h"
24#include "../../localuser/localuserchannel.h"
25#include <string.h>
26#include <stdio.h>
27
b08b920b
CP
28static int nickmatchban_peerthroughhidehost(void *arg, struct chanban *ban) {
29 return nickmatchban(arg, ban, 0);
30}
31
1dd6d55d 32int csc_dounbanme(void *source, int cargc, char **cargv) {
33 nick *sender=source;
1dd6d55d 34 chanindex *cip;
336765cd 35
1dd6d55d 36 if (cargc<1) {
37 chanservstdmessage(sender, QM_NOTENOUGHPARAMS, "unbanme");
38 return CMD_ERROR;
39 }
40
41 if (!(cip=cs_checkaccess(sender, cargv[0], CA_OPPRIV, NULL, "unbanme", 0, 0)))
42 return CMD_ERROR;
43
0a53499c 44 /* Try to unban, if it fails we'll let the failure message speak for itself */
b08b920b 45 if (!cs_unbanfn(sender, cip, nickmatchban_peerthroughhidehost, sender, 1, 1)) {
0a53499c 46 chanservstdmessage(sender, QM_DONE);
47 }
1dd6d55d 48
49 cs_log(sender,"UNBANME %s",cip->name->content);
1dd6d55d 50 return CMD_OK;
51}