]>
Commit | Line | Data |
---|---|---|
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 |
28 | static int nickmatchban_peerthroughhidehost(void *arg, struct chanban *ban) { |
29 | return nickmatchban(arg, ban, 0); | |
30 | } | |
31 | ||
1dd6d55d | 32 | int 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 | } |