X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/2d28539c686f820dd525182f10eec78c8f646ad3..5bc95eaf4ad00897e6ff9b37225c2dd4399eadda:/extensions/hurt.c diff --git a/extensions/hurt.c b/extensions/hurt.c index ca187346..9f6ee7ad 100644 --- a/extensions/hurt.c +++ b/extensions/hurt.c @@ -3,8 +3,6 @@ * * Copyright (C) 2006 charybdis development team * All rights reserved - * - * $Id: hurt.c 3161 2007-01-25 07:23:01Z nenolod $ */ #include "stdinc.h" #include "modules.h" @@ -49,10 +47,10 @@ typedef struct _hurt { /* }}} */ /* {{{ Prototypes */ -static int mo_hurt(struct Client *, struct Client *, int, const char **); -static int me_hurt(struct Client *, struct Client *, int, const char **); -static int mo_heal(struct Client *, struct Client *, int, const char **); -static int me_heal(struct Client *, struct Client *, int, const char **); +static void mo_hurt(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **); +static void me_hurt(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **); +static void mo_heal(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **); +static void me_heal(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **); static int modinit(void); static void modfini(void); @@ -72,7 +70,7 @@ static hurt_t *hurt_find_exact(const char *ip); static void hurt_remove(const char *ip); static void hurt_destroy(void *hurt); -static int heal_nick(struct Client *, struct Client *); +static void heal_nick(struct Client *, struct Client *); /* }}} */ @@ -84,14 +82,14 @@ rb_dlink_list hurt_confs = { NULL, NULL, 0 }; /* {{{ Messages */ struct Message hurt_msgtab = { - "HURT", 0, 0, 0, MFLG_SLOW, { + "HURT", 0, 0, 0, 0, { mg_ignore, mg_ignore, mg_ignore, mg_ignore, {me_hurt, 0}, {mo_hurt, 3} } }; struct Message heal_msgtab = { - "HEAL", 0, 0, 0, MFLG_SLOW, { + "HEAL", 0, 0, 0, 0, { mg_ignore, mg_ignore, mg_ignore, mg_ignore, {me_heal, 0}, {mo_heal, 2} } @@ -108,14 +106,20 @@ mapi_hfn_list_av1 hurt_hfnlist[] = { mapi_clist_av1 hurt_clist[] = { &hurt_msgtab, &heal_msgtab, NULL }; -DECLARE_MODULE_AV1( +static const char hurt_desc[] = + "Prevents \"hurt\" users from messaging anyone but operators or " + "services until they identify or are \"healed\""; + +DECLARE_MODULE_AV2( hurt, modinit, modfini, hurt_clist, NULL, hurt_hfnlist, - "$Revision: 3161 $" + NULL, + NULL, + hurt_desc ); /* }}} */ @@ -169,7 +173,7 @@ modfini(void) * Message handlers. */ -/* {{{ static int mo_hurt() +/* {{{ static void mo_hurt() * * HURT [] * @@ -177,8 +181,8 @@ modfini(void) * parv[2] - ip or reason * parv[3] - reason or NULL */ -static int -mo_hurt(struct Client *client_p, struct Client *source_p, +static void +mo_hurt(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv) { const char *ip, *expire, *reason; @@ -189,7 +193,7 @@ mo_hurt(struct Client *client_p, struct Client *source_p, if (!IsOperK(source_p)) { sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "kline"); - return 0; + return; } if (parc == 3) @@ -201,11 +205,11 @@ mo_hurt(struct Client *client_p, struct Client *source_p, expire_time = HURT_DEFAULT_EXPIRE; if (expire && (expire_time = valid_temp_time(expire)) < 1) { sendto_one_notice(source_p, ":Permanent HURTs are not supported"); - return 0; + return; } if (EmptyString(reason)) { sendto_one_notice(source_p, ":Empty HURT reasons are bad for business"); - return 0; + return; } /* Is this a client? */ @@ -216,7 +220,7 @@ mo_hurt(struct Client *client_p, struct Client *source_p, { sendto_one_numeric(source_p, ERR_NOSUCHNICK, form_str(ERR_NOSUCHNICK), ip); - return 0; + return; } ip = target_p->orighost; } @@ -228,13 +232,13 @@ mo_hurt(struct Client *client_p, struct Client *source_p, { sendto_one_notice(source_p, ":Invalid HURT mask [%s]", ip); - return 0; + return; } } if (hurt_find(ip) != NULL) { sendto_one(source_p, ":[%s] already HURT", ip); - return 0; + return; } /* @@ -248,12 +252,10 @@ mo_hurt(struct Client *client_p, struct Client *source_p, hurt = hurt_new(expire_time, ip, reason); hurt_add(hurt); hurt_propagate(NULL, source_p, hurt); - - return 0; } /* }}} */ -/* {{{ static int me_hurt() +/* {{{ static void me_hurt() * * [ENCAP mask] HURT * @@ -261,8 +263,8 @@ mo_hurt(struct Client *client_p, struct Client *source_p, * parv[2] - ip * parv[3] - reason */ -static int -me_hurt(struct Client *client_p, struct Client *source_p, +static void +me_hurt(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv) { time_t expire_time; @@ -274,32 +276,30 @@ me_hurt(struct Client *client_p, struct Client *source_p, * dropping a server over. */ if (parc < 4 || !IsPerson(source_p)) - return 0; + return; if ((expire_time = atoi(parv[1])) < 1) - return 0; + return; if (hurt_find(parv[2]) != NULL) - return 0; + return; if (EmptyString(parv[3])) - return 0; + return; sendto_realops_snomask(SNO_GENERAL, L_ALL, "%s added HURT on [%s] for %ld minutes with reason [%s]", get_oper_name(source_p), parv[2], (long) expire_time / 60, parv[3]); hurt = hurt_new(expire_time, parv[2], parv[3]); hurt_add(hurt); - - return 0; } /* }}} */ -/* {{{ static int mo_heal() +/* {{{ static void mo_heal() * * HURT | * * parv[1] - nick or ip */ -static int -mo_heal(struct Client *client_p, struct Client *source_p, +static void +mo_heal(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv) { struct Client *target_p; @@ -308,7 +308,7 @@ mo_heal(struct Client *client_p, struct Client *source_p, { sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "unkline"); - return 0; + return; } if (clean_nick(parv[1], 0)) @@ -318,7 +318,7 @@ mo_heal(struct Client *client_p, struct Client *source_p, { sendto_one_numeric(source_p, ERR_NOSUCHNICK, form_str(ERR_NOSUCHNICK), parv[1]); - return 0; + return; } if (MyConnect(target_p)) heal_nick(source_p, target_p); @@ -333,7 +333,7 @@ mo_heal(struct Client *client_p, struct Client *source_p, if (hurt_find_exact(parv[1]) == NULL) { sendto_one_notice(source_p, ":Mask [%s] is not HURT", parv[1]); - return 0; + return; } hurt_remove(parv[1]); sendto_realops_snomask(SNO_GENERAL, L_ALL, "%s removed HURT on %s", @@ -344,15 +344,13 @@ mo_heal(struct Client *client_p, struct Client *source_p, else { sendto_one(source_p, ":[%s] is not a valid IP address/nick", parv[1]); - return 0; + return; } - - return 0; } /* }}} */ -static int -me_heal(struct Client *client_p, struct Client *source_p, +static void +me_heal(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv) { struct Client *target_p; @@ -361,7 +359,7 @@ me_heal(struct Client *client_p, struct Client *source_p, * *poof*, it's dropped... */ if (parc < 2) - return 0; + return; if (clean_nick(parv[1], 0)) { @@ -372,16 +370,12 @@ me_heal(struct Client *client_p, struct Client *source_p, else if (strchr(parv[1], '.')) /* host or mask to remove ban for */ { if (hurt_find_exact(parv[1]) == NULL) - return 0; + return; hurt_remove(parv[1]); sendto_realops_snomask(SNO_GENERAL, L_ALL, "%s removed HURT on %s", get_oper_name(source_p), parv[1]); } - else - return 0; - - return 0; } /* @@ -495,7 +489,6 @@ doing_stats_hook(hook_data_int *hdata) sendto_one_numeric(source_p, RPL_STATSKLINE, form_str(RPL_STATSKLINE), 's', "*", hurt->ip, hurt->reason, "", ""); - return; } return; } @@ -583,7 +576,7 @@ hurt_find_exact(const char *ip) { hurt = (hurt_t *) ptr->data; - if (!strcasecmp(ip, hurt->ip)) + if (!rb_strcasecmp(ip, hurt->ip)) return hurt; } @@ -616,8 +609,8 @@ hurt_remove(const char *ip) hurt_destroy(hurt); } -/* {{{ static int heal_nick() */ -static int +/* {{{ static void heal_nick() */ +static void heal_nick(struct Client *source_p, struct Client *target_p) { if (rb_dlinkFindDestroy(target_p, &hurt_state.hurt_clients)) @@ -627,12 +620,10 @@ heal_nick(struct Client *source_p, struct Client *target_p) sendto_one_notice(target_p, ":HURT restriction temporarily removed by operator"); sendto_one_notice(source_p, ":HURT restriction on %s temporarily removed", target_p->name); target_p->localClient->target_last = rb_current_time(); /* don't ask --nenolod */ - return 1; } else { sendto_one_notice(source_p, ":%s was not hurt", target_p->name); - return 0; } } /* }}} */