X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/212380e3f42f585dc1ea927402252eb943f91f7b..f48c47b76e9322f760a048527284b47173b7e6ee:/extensions/hurt.c diff --git a/extensions/hurt.c b/extensions/hurt.c index 0708fab..047eff2 100644 --- a/extensions/hurt.c +++ b/extensions/hurt.c @@ -4,7 +4,7 @@ * Copyright (C) 2006 charybdis development team * All rights reserved * - * $Id: hurt.c 1905 2006-08-29 14:51:31Z jilles $ + * $Id: hurt.c 3161 2007-01-25 07:23:01Z nenolod $ */ #include "stdinc.h" #include "modules.h" @@ -14,7 +14,6 @@ #include "send.h" #include "numeric.h" #include "hostmask.h" -#include "event.h" #include "s_conf.h" #include "s_newconf.h" #include "hash.h" @@ -32,17 +31,17 @@ enum { typedef struct _hurt_state { time_t start_time; uint32_t n_hurts; - dlink_list hurt_clients; + rb_dlink_list hurt_clients; uint16_t cutoff; time_t default_expire; const char *exit_reason; } hurt_state_t; typedef struct _hurt { - const char *ip; + char *ip; struct sockaddr *saddr; int saddr_bits; - const char *reason; + char *reason; time_t expire; } hurt_t; /* }}} */ @@ -78,7 +77,7 @@ static int nick_is_valid(const char *); /* {{{ State containers */ -dlink_list hurt_confs = { NULL, NULL, 0 }; +rb_dlink_list hurt_confs = { NULL, NULL, 0 }; /* }}} */ @@ -115,7 +114,7 @@ DECLARE_MODULE_AV1( hurt_clist, NULL, hurt_hfnlist, - "$Revision: 1905 $" + "$Revision: 3161 $" ); /* }}} */ @@ -130,15 +129,19 @@ hurt_state_t hurt_state = { */ /* {{{ static int modinit() */ + +struct ev_entry *hurt_expire_ev = NULL; +struct ev_entry *hurt_check_ev = NULL; + static int modinit(void) { /* set-up hurt_state. */ - hurt_state.start_time = CurrentTime; + hurt_state.start_time = rb_current_time(); /* add our event handlers. */ - eventAdd("hurt_expire", hurt_expire_event, NULL, 60); - eventAdd("hurt_check", hurt_check_event, NULL, 5); + hurt_expire_ev = rb_event_add("hurt_expire", hurt_expire_event, NULL, 60); + hurt_check_ev = rb_event_add("hurt_check", hurt_check_event, NULL, 5); return 0; } @@ -148,15 +151,15 @@ modinit(void) static void modfini(void) { - dlink_node *ptr, *next_ptr; + rb_dlink_node *ptr, *next_ptr; /* and delete our events. */ - eventDelete(hurt_expire_event, NULL); - eventDelete(hurt_check_event, NULL); + rb_event_delete(hurt_expire_ev); + rb_event_delete(hurt_check_ev); - DLINK_FOREACH_SAFE (ptr, next_ptr, hurt_state.hurt_clients.head) + RB_DLINK_FOREACH_SAFE (ptr, next_ptr, hurt_state.hurt_clients.head) { - dlinkDestroy(ptr, &hurt_state.hurt_clients); + rb_dlinkDestroy(ptr, &hurt_state.hurt_clients); } } /* }}} */ @@ -196,15 +199,11 @@ mo_hurt(struct Client *client_p, struct Client *source_p, if (!expire) expire_time = HURT_DEFAULT_EXPIRE; if (expire && (expire_time = valid_temp_time(expire)) < 1) { - sendto_one(source_p, - ":%s NOTICE %s :Permanent HURTs are not supported", - me.name, source_p->name); + sendto_one_notice(source_p, ":Permanent HURTs are not supported"); return 0; } if (EmptyString(reason)) { - sendto_one(source_p, - ":%s NOTICE %s :Empty HURT reasons are bad for business", - me.name, source_p->name); + sendto_one_notice(source_p, ":Empty HURT reasons are bad for business"); return 0; } @@ -233,9 +232,7 @@ mo_hurt(struct Client *client_p, struct Client *source_p, } if (hurt_find(ip) != NULL) { - sendto_one(source_p, - ":%s NOTICE %s :[%s] already HURT", - me.name, source_p->name, ip); + sendto_one(source_p, ":[%s] already HURT", ip); return 0; } @@ -334,8 +331,7 @@ mo_heal(struct Client *client_p, struct Client *source_p, { if (hurt_find_exact(parv[1]) == NULL) { - sendto_one(source_p, ":%s NOTICE %s :Mask [%s] is not HURT", - me.name, source_p->name, parv[1]); + sendto_one_notice(source_p, ":Mask [%s] is not HURT", parv[1]); return 0; } hurt_remove(parv[1]); @@ -346,9 +342,7 @@ mo_heal(struct Client *client_p, struct Client *source_p, } else { - sendto_one(source_p, - ":%s NOTICE %s :[%s] is not a valid IP address/nick", - me.name, source_p->name, parv[1]); + sendto_one(source_p, ":[%s] is not a valid IP address/nick", parv[1]); return 0; } @@ -397,17 +391,17 @@ me_heal(struct Client *client_p, struct Client *source_p, static void hurt_check_event(void *arg) { - dlink_node *ptr, *next_ptr; + rb_dlink_node *ptr, *next_ptr; struct Client *client_p; - DLINK_FOREACH_SAFE (ptr, next_ptr, hurt_state.hurt_clients.head) { + RB_DLINK_FOREACH_SAFE (ptr, next_ptr, hurt_state.hurt_clients.head) { client_p = ptr->data; if (!EmptyString(client_p->user->suser)) { - dlinkDestroy(ptr, &hurt_state.hurt_clients); + rb_dlinkDestroy(ptr, &hurt_state.hurt_clients); sendto_one_notice(client_p, ":HURT restriction removed for this session"); USED_TARGETS(client_p) = 0; - client_p->localClient->target_last = CurrentTime; /* don't ask --nenolod */ + client_p->localClient->target_last = rb_current_time(); /* don't ask --nenolod */ } else if (client_p->localClient->receiveM > hurt_state.cutoff) exit_client(NULL, client_p, &me, hurt_state.exit_reason); @@ -419,16 +413,16 @@ hurt_check_event(void *arg) static void hurt_expire_event(void *unused) { - dlink_node *ptr, *next_ptr; + rb_dlink_node *ptr, *next_ptr; hurt_t *hurt; - DLINK_FOREACH_SAFE (ptr, next_ptr, hurt_confs.head) + RB_DLINK_FOREACH_SAFE (ptr, next_ptr, hurt_confs.head) { hurt = (hurt_t *) ptr->data; - if (hurt->expire <= CurrentTime) + if (hurt->expire <= rb_current_time()) { - dlinkFindDestroy(hurt, &hurt_confs); + rb_dlinkFindDestroy(hurt, &hurt_confs); hurt_destroy(hurt); } } @@ -446,7 +440,7 @@ client_exit_hook(hook_data_client_exit *data) s_assert(data != NULL); s_assert(data->target != NULL); - dlinkFindDestroy(data->target, &hurt_state.hurt_clients); + rb_dlinkFindDestroy(data->target, &hurt_state.hurt_clients); } /* }}} */ @@ -461,9 +455,9 @@ new_local_user_hook(struct Client *source_p) if (hurt_find(source_p->sockhost) || hurt_find(source_p->orighost)) { USED_TARGETS(source_p) = 10; - source_p->localClient->target_last = CurrentTime + 600; /* don't ask --nenolod */ + source_p->localClient->target_last = rb_current_time() + 600; /* don't ask --nenolod */ SetTGChange(source_p); - dlinkAddAlloc(source_p, &hurt_state.hurt_clients); + rb_dlinkAddAlloc(source_p, &hurt_state.hurt_clients); sendto_one_notice(source_p, ":You are hurt. Please identify to services immediately, or use /stats p for assistance."); } } @@ -473,7 +467,7 @@ new_local_user_hook(struct Client *source_p) static void doing_stats_hook(hook_data_int *hdata) { - dlink_node *ptr; + rb_dlink_node *ptr; hurt_t *hurt; struct Client *source_p; @@ -507,7 +501,7 @@ doing_stats_hook(hook_data_int *hdata) return; } - DLINK_FOREACH(ptr, hurt_confs.head) + RB_DLINK_FOREACH(ptr, hurt_confs.head) { hurt = (hurt_t *) ptr->data; sendto_one_numeric(source_p, RPL_STATSKLINE, @@ -531,13 +525,13 @@ hurt_propagate(struct Client *client_p, struct Client *source_p, hurt_t *hurt) sendto_one(client_p, ":%s ENCAP %s HURT %ld %s :%s", source_p->name, client_p->name, - (long)(hurt->expire - CurrentTime), + (long)(hurt->expire - rb_current_time()), hurt->ip, hurt->reason); else sendto_server(&me, NULL, NOCAPS, NOCAPS, ":%s ENCAP * HURT %ld %s :%s", source_p->name, - (long)(hurt->expire - CurrentTime), + (long)(hurt->expire - rb_current_time()), hurt->ip, hurt->reason); } /* }}} */ @@ -548,11 +542,11 @@ hurt_new(time_t expire, const char *ip, const char *reason) { hurt_t *hurt; - hurt = MyMalloc(sizeof(hurt_t)); + hurt = rb_malloc(sizeof(hurt_t)); - DupString(hurt->ip, ip); - DupString(hurt->reason, reason); - hurt->expire = CurrentTime + expire; + hurt->ip = rb_strdup(ip); + hurt->reason = rb_strdup(reason); + hurt->expire = rb_current_time() + expire; return hurt; } @@ -568,25 +562,25 @@ hurt_destroy(void *hurt) return; h = (hurt_t *) hurt; - MyFree((char *) h->ip); - MyFree((char *) h->reason); - MyFree(h); + rb_free(h->ip); + rb_free(h->reason); + rb_free(h); } /* }}} */ static void hurt_add(hurt_t *hurt) { - dlinkAddAlloc(hurt, &hurt_confs); + rb_dlinkAddAlloc(hurt, &hurt_confs); } static hurt_t * hurt_find_exact(const char *ip) { - dlink_node *ptr; + rb_dlink_node *ptr; hurt_t *hurt; - DLINK_FOREACH(ptr, hurt_confs.head) + RB_DLINK_FOREACH(ptr, hurt_confs.head) { hurt = (hurt_t *) ptr->data; @@ -600,10 +594,10 @@ hurt_find_exact(const char *ip) static hurt_t * hurt_find(const char *ip) { - dlink_node *ptr; + rb_dlink_node *ptr; hurt_t *hurt; - DLINK_FOREACH(ptr, hurt_confs.head) + RB_DLINK_FOREACH(ptr, hurt_confs.head) { hurt = (hurt_t *) ptr->data; @@ -619,7 +613,7 @@ hurt_remove(const char *ip) { hurt_t *hurt = hurt_find_exact(ip); - dlinkFindDestroy(hurt, &hurt_confs); + rb_dlinkFindDestroy(hurt, &hurt_confs); hurt_destroy(hurt); } @@ -627,14 +621,14 @@ hurt_remove(const char *ip) static int heal_nick(struct Client *source_p, struct Client *target_p) { - if (dlinkFindDestroy(target_p, &hurt_state.hurt_clients)) + if (rb_dlinkFindDestroy(target_p, &hurt_state.hurt_clients)) { sendto_realops_snomask(SNO_GENERAL, L_ALL, "%s used HEAL on %s", get_oper_name(source_p), get_client_name(target_p, HIDE_IP)); 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); USED_TARGETS(target_p) = 0; - target_p->localClient->target_last = CurrentTime; /* don't ask --nenolod */ + target_p->localClient->target_last = rb_current_time(); /* don't ask --nenolod */ return 1; } else