| 43 |
|
#include "parse.h" |
| 44 |
|
#include "modules.h" |
| 45 |
|
#include "conf_db.h" |
| 46 |
< |
|
| 46 |
> |
#include "memory.h" |
| 47 |
|
|
| 48 |
|
static int already_placed_kline(struct Client *, const char *, const char *, int); |
| 49 |
|
static void m_kline_add_kline(struct Client *, struct MaskItem *, time_t); |
| 105 |
|
user, host, reason); |
| 106 |
|
|
| 107 |
|
/* Allow ON to apply local kline as well if it matches */ |
| 108 |
< |
if (!match(target_server, me.name)) |
| 108 |
> |
if (match(target_server, me.name)) |
| 109 |
|
return; |
| 110 |
|
} |
| 111 |
|
else |
| 119 |
|
current_date = smalldate(cur_time); |
| 120 |
|
conf = conf_make(CONF_KLINE); |
| 121 |
|
|
| 122 |
< |
DupString(conf->host, host); |
| 123 |
< |
DupString(conf->user, user); |
| 122 |
> |
conf->host = xstrdup(host); |
| 123 |
> |
conf->user = xstrdup(user); |
| 124 |
|
|
| 125 |
|
if (tkline_time != 0) |
| 126 |
|
snprintf(buffer, sizeof(buffer), "Temporary K-line %d min. - %s (%s)", |
| 128 |
|
else |
| 129 |
|
snprintf(buffer, sizeof(buffer), "%s (%s)", reason, current_date); |
| 130 |
|
|
| 131 |
< |
DupString(conf->reason, buffer); |
| 131 |
> |
conf->reason = xstrdup(buffer); |
| 132 |
|
m_kline_add_kline(source_p, conf, tkline_time); |
| 133 |
|
} |
| 134 |
|
|
| 146 |
|
if (parc != 6 || EmptyString(parv[5])) |
| 147 |
|
return; |
| 148 |
|
|
| 149 |
< |
if (!match(parv[1], me.name)) |
| 149 |
> |
if (match(parv[1], me.name)) |
| 150 |
|
return; |
| 151 |
|
|
| 152 |
|
tkline_time = valid_tkline(parv[2], TK_SECONDS); |
| 166 |
|
return; |
| 167 |
|
|
| 168 |
|
conf = conf_make(CONF_KLINE); |
| 169 |
< |
DupString(conf->host, khost); |
| 170 |
< |
DupString(conf->user, kuser); |
| 169 |
> |
conf->host = xstrdup(khost); |
| 170 |
> |
conf->user = xstrdup(kuser); |
| 171 |
|
|
| 172 |
|
if (tkline_time != 0) |
| 173 |
|
snprintf(buffer, sizeof(buffer), "Temporary K-line %d min. - %s (%s)", |
| 175 |
|
else |
| 176 |
|
snprintf(buffer, sizeof(buffer), "%s (%s)", kreason, current_date); |
| 177 |
|
|
| 178 |
< |
DupString(conf->reason, buffer); |
| 178 |
> |
conf->reason = xstrdup(buffer); |
| 179 |
|
m_kline_add_kline(source_p, conf, tkline_time); |
| 180 |
|
} |
| 181 |
|
} |
| 208 |
|
{ |
| 209 |
|
if (tkline_time) |
| 210 |
|
{ |
| 211 |
< |
conf->hold = CurrentTime + tkline_time; |
| 211 |
> |
conf->until = CurrentTime + tkline_time; |
| 212 |
|
sendto_realops_flags(UMODE_ALL, L_ALL, SEND_NOTICE, |
| 213 |
|
"%s added temporary %d min. K-Line for [%s@%s] [%s]", |
| 214 |
|
get_oper_name(source_p), tkline_time/60, |
| 332 |
|
target_server, user, host); |
| 333 |
|
|
| 334 |
|
/* Allow ON to apply local unkline as well if it matches */ |
| 335 |
< |
if (!match(target_server, me.name)) |
| 335 |
> |
if (match(target_server, me.name)) |
| 336 |
|
return; |
| 337 |
|
} |
| 338 |
|
else |
| 377 |
|
kuser = parv[2]; |
| 378 |
|
khost = parv[3]; |
| 379 |
|
|
| 380 |
< |
if (!IsClient(source_p) || !match(parv[1], me.name)) |
| 380 |
> |
if (!IsClient(source_p) || match(parv[1], me.name)) |
| 381 |
|
return; |
| 382 |
|
|
| 383 |
|
if (HasFlag(source_p, FLAGS_SERVICE) || find_matching_name_conf(CONF_ULINE, |