#include "send.h"
#include "numeric.h"
#include "hostmask.h"
-#include "event.h"
#include "s_conf.h"
#include "s_newconf.h"
#include "hash.h"
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;
/* {{{ State containers */
-dlink_list hurt_confs = { NULL, NULL, 0 };
+rb_dlink_list hurt_confs = { NULL, NULL, 0 };
/* }}} */
modinit(void)
{
/* set-up hurt_state. */
- hurt_state.start_time = CurrentTime;
+ hurt_state.start_time = rb_current_time();
/* add our event handlers. */
hurt_expire_ev = rb_event_add("hurt_expire", hurt_expire_event, NULL, 60);
static void
modfini(void)
{
- dlink_node *ptr, *next_ptr;
+ rb_dlink_node *ptr, *next_ptr;
/* and delete our events. */
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);
}
}
/* }}} */
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);
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);
}
}
s_assert(data != NULL);
s_assert(data->target != NULL);
- dlinkFindDestroy(data->target, &hurt_state.hurt_clients);
+ rb_dlinkFindDestroy(data->target, &hurt_state.hurt_clients);
}
/* }}} */
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.");
}
}
static void
doing_stats_hook(hook_data_int *hdata)
{
- dlink_node *ptr;
+ rb_dlink_node *ptr;
hurt_t *hurt;
struct Client *source_p;
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,
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);
}
/* }}} */
{
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;
}
return;
h = (hurt_t *) hurt;
- MyFree(h->ip);
- MyFree(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;
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;
{
hurt_t *hurt = hurt_find_exact(ip);
- dlinkFindDestroy(hurt, &hurt_confs);
+ rb_dlinkFindDestroy(hurt, &hurt_confs);
hurt_destroy(hurt);
}
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