76 |
|
|
77 |
|
static void check_pings_list(dlink_list *); |
78 |
|
static void check_unknowns_list(void); |
79 |
– |
static void ban_them(struct Client *, struct MaskItem *); |
79 |
|
|
80 |
|
|
81 |
|
/* client_init() |
430 |
|
* output - NONE |
431 |
|
* side effects - given client_p is banned |
432 |
|
*/ |
433 |
< |
static void |
433 |
> |
void |
434 |
|
ban_them(struct Client *client_p, struct MaskItem *conf) |
435 |
|
{ |
436 |
|
const char *user_reason = NULL; /* What is sent to user */ |
443 |
|
switch (conf->type) |
444 |
|
{ |
445 |
|
case CONF_KLINE: |
446 |
+ |
if (IsExemptKline(client_p)) |
447 |
+ |
{ |
448 |
+ |
sendto_realops_flags(UMODE_ALL, L_ALL, SEND_NOTICE, |
449 |
+ |
"KLINE over-ruled for %s, client is kline_exempt", |
450 |
+ |
get_client_name(client_p, HIDE_IP)); |
451 |
+ |
return; |
452 |
+ |
} |
453 |
+ |
|
454 |
|
type_string = kline_string; |
455 |
|
break; |
456 |
|
case CONF_DLINE: |
457 |
|
type_string = dline_string; |
458 |
|
break; |
459 |
|
case CONF_GLINE: |
460 |
+ |
if (IsExemptKline(client_p) || |
461 |
+ |
IsExemptGline(client_p)) |
462 |
+ |
{ |
463 |
+ |
sendto_realops_flags(UMODE_ALL, L_ALL, SEND_NOTICE, |
464 |
+ |
"GLINE over-ruled for %s, client is %sline_exempt", |
465 |
+ |
get_client_name(client_p, HIDE_IP), IsExemptKline(client_p) ? "k" : "g"); |
466 |
+ |
return; |
467 |
+ |
} |
468 |
+ |
|
469 |
|
type_string = gline_string; |
470 |
|
break; |
471 |
|
case CONF_XLINE: |