--HG--
branch : chanserv-live
#include <string.h>
#include <stdio.h>
#include <string.h>
#include <stdio.h>
+static int nickmatchban_peerthroughhidehost(void *arg, struct chanban *ban) {
+ return nickmatchban(arg, ban, 0);
+}
+
int csc_dorecover(void *source, int cargc, char **cargv) {
nick *sender=source,*np;
reguser *rup;
int csc_dorecover(void *source, int cargc, char **cargv) {
nick *sender=source,*np;
reguser *rup;
}
/* remove the registered bans that match on me */
}
/* remove the registered bans that match on me */
- cs_unbanfn(sender, cip, (UnbanFN)nickmatchban, sender, 1, 0);
+ cs_unbanfn(sender, cip, nickmatchban_peerthroughhidehost, sender, 1, 0);
/* deopall */
for (i=0,lp=cip->channel->users->content;
/* deopall */
for (i=0,lp=cip->channel->users->content;
#include <string.h>
#include <stdio.h>
#include <string.h>
#include <stdio.h>
+static int banoverlap_wrapper(void *arg, struct chanban *ban) {
+ return banoverlap(arg, ban);
+}
+
int csc_dounbanmask(void *source, int cargc, char **cargv) {
nick *sender=source;
chanindex *cip;
int csc_dounbanmask(void *source, int cargc, char **cargv) {
nick *sender=source;
chanindex *cip;
theban=makeban(cargv[1]);
/* nice cast here */
theban=makeban(cargv[1]);
/* nice cast here */
- cs_unbanfn(sender, cip, (UnbanFN)banoverlap, theban, 1, 0);
+ cs_unbanfn(sender, cip, banoverlap_wrapper, theban, 1, 0);
cs_log(sender,"UNBANMASK %s",bantostring(theban));
freechanban(theban);
cs_log(sender,"UNBANMASK %s",bantostring(theban));
freechanban(theban);
#include <string.h>
#include <stdio.h>
#include <string.h>
#include <stdio.h>
+static int nickmatchban_peerthroughhidehost(void *arg, struct chanban *ban) {
+ return nickmatchban(arg, ban, 0);
+}
+
int csc_dounbanme(void *source, int cargc, char **cargv) {
nick *sender=source;
chanindex *cip;
int csc_dounbanme(void *source, int cargc, char **cargv) {
nick *sender=source;
chanindex *cip;
return CMD_ERROR;
/* Try to unban, if it fails we'll let the failure message speak for itself */
return CMD_ERROR;
/* Try to unban, if it fails we'll let the failure message speak for itself */
- if (!cs_unbanfn(sender, cip, (UnbanFN)nickmatchban, sender, 1, 1)) {
+ if (!cs_unbanfn(sender, cip, nickmatchban_peerthroughhidehost, sender, 1, 1)) {
chanservstdmessage(sender, QM_DONE);
}
chanservstdmessage(sender, QM_DONE);
}
int checkresponse(reguser *rup, const unsigned char *entropy, const char *response, CRAlgorithm algorithm);
int checkhashpass(reguser *rup, const char *junk, const char *hash);
flag_t cs_sanitisechanlev(flag_t flags);
int checkresponse(reguser *rup, const unsigned char *entropy, const char *response, CRAlgorithm algorithm);
int checkhashpass(reguser *rup, const char *junk, const char *hash);
flag_t cs_sanitisechanlev(flag_t flags);
-typedef int (*UnbanFN)(void *arg, struct chanban *ban);
-int cs_unbanfn(nick *sender, chanindex *cip, UnbanFN fn, void *arg, int removepermbans, int abortonfailure);
+int cs_unbanfn(nick *sender, chanindex *cip, int (*fn)(void *arg, struct chanban *ban), void *arg, int removepermbans, int abortonfailure);
void cs_logchanop(regchan *rcp, char *nick, reguser *rup);
int checkreason(nick *np, char *reason);
void cs_logchanop(regchan *rcp, char *nick, reguser *rup);
int checkreason(nick *np, char *reason);
*
* Return 0 if it works, 1 if it don't.
*/
*
* Return 0 if it works, 1 if it don't.
*/
-int cs_unbanfn(nick *sender, chanindex *cip, UnbanFN fn, void *arg, int removepermbans, int abortonfailure) {
+int cs_unbanfn(nick *sender, chanindex *cip, int (*fn)(void *arg, struct chanban *ban), void *arg, int removepermbans, int abortonfailure) {
regban **rbh, *rbp;
chanban **cbh, *cbp;
regchan *rcp;
regban **rbh, *rbp;
chanban **cbh, *cbp;
regchan *rcp;