Remove idle time checking (auto disconnecting users idle too long).
This commit is contained in:
parent
c14b0e4030
commit
cdd5b26189
13 changed files with 0 additions and 93 deletions
|
@ -425,7 +425,6 @@ general {
|
||||||
glines = no;
|
glines = no;
|
||||||
gline_time = 1 day;
|
gline_time = 1 day;
|
||||||
gline_min_cidr = 16;
|
gline_min_cidr = 16;
|
||||||
idletime = 0;
|
|
||||||
max_targets = 4;
|
max_targets = 4;
|
||||||
client_flood = 20;
|
client_flood = 20;
|
||||||
use_whois_actually = no;
|
use_whois_actually = no;
|
||||||
|
|
|
@ -1026,11 +1026,6 @@ general {
|
||||||
*/
|
*/
|
||||||
gline_min_cidr = 16;
|
gline_min_cidr = 16;
|
||||||
|
|
||||||
/* idletime: the maximum amount of time a user may idle before
|
|
||||||
* they are disconnected
|
|
||||||
*/
|
|
||||||
idletime = 0;
|
|
||||||
|
|
||||||
/* REMOVE ME. The following line checks you've been reading. */
|
/* REMOVE ME. The following line checks you've been reading. */
|
||||||
havent_read_conf = yes;
|
havent_read_conf = yes;
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,6 @@ SET <option> <value>
|
||||||
Note that this variable is used for both
|
Note that this variable is used for both
|
||||||
channels and clients
|
channels and clients
|
||||||
IDENTTIMEOUT- Timeout for requesting ident from a client
|
IDENTTIMEOUT- Timeout for requesting ident from a client
|
||||||
IDLETIME - The number of seconds a client can be idle
|
|
||||||
before disconnecting them
|
|
||||||
MAX - Sets the number of max connections
|
MAX - Sets the number of max connections
|
||||||
to <value>. (This number cannot exceed
|
to <value>. (This number cannot exceed
|
||||||
HARD_FDLIMIT in config.h)
|
HARD_FDLIMIT in config.h)
|
||||||
|
|
|
@ -459,7 +459,6 @@ struct exit_client_hook
|
||||||
#define FLAGS2_EXEMPTKLINE 0x01000000
|
#define FLAGS2_EXEMPTKLINE 0x01000000
|
||||||
#define FLAGS2_EXEMPTFLOOD 0x02000000
|
#define FLAGS2_EXEMPTFLOOD 0x02000000
|
||||||
#define FLAGS2_NOLIMIT 0x04000000
|
#define FLAGS2_NOLIMIT 0x04000000
|
||||||
#define FLAGS2_IDLE_LINED 0x08000000
|
|
||||||
#define FLAGS2_IP_SPOOFING 0x10000000
|
#define FLAGS2_IP_SPOOFING 0x10000000
|
||||||
#define FLAGS2_EXEMPTSPAMBOT 0x20000000
|
#define FLAGS2_EXEMPTSPAMBOT 0x20000000
|
||||||
#define FLAGS2_EXEMPTSHIDE 0x40000000
|
#define FLAGS2_EXEMPTSHIDE 0x40000000
|
||||||
|
@ -557,9 +556,6 @@ struct exit_client_hook
|
||||||
#define IsIPSpoof(x) ((x)->flags2 & FLAGS2_IP_SPOOFING)
|
#define IsIPSpoof(x) ((x)->flags2 & FLAGS2_IP_SPOOFING)
|
||||||
#define SetIPSpoof(x) ((x)->flags2 |= FLAGS2_IP_SPOOFING)
|
#define SetIPSpoof(x) ((x)->flags2 |= FLAGS2_IP_SPOOFING)
|
||||||
|
|
||||||
#define SetIdlelined(x) ((x)->flags2 |= FLAGS2_IDLE_LINED)
|
|
||||||
#define IsIdlelined(x) ((x)->flags2 & FLAGS2_IDLE_LINED)
|
|
||||||
|
|
||||||
/* for local users: flood grace period is over
|
/* for local users: flood grace period is over
|
||||||
* for servers: mentioned in networknotice.c notice
|
* for servers: mentioned in networknotice.c notice
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -39,8 +39,6 @@ struct SetOptions
|
||||||
int maxclients; /* max clients allowed */
|
int maxclients; /* max clients allowed */
|
||||||
int autoconn; /* autoconn enabled for all servers? */
|
int autoconn; /* autoconn enabled for all servers? */
|
||||||
|
|
||||||
int idletime;
|
|
||||||
|
|
||||||
int floodcount; /* Number of messages in 1 second */
|
int floodcount; /* Number of messages in 1 second */
|
||||||
int ident_timeout; /* timeout for identd lookups */
|
int ident_timeout; /* timeout for identd lookups */
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,6 @@ struct ConfItem
|
||||||
#define CONF_FLAGS_NEED_IDENTD 0x00000008
|
#define CONF_FLAGS_NEED_IDENTD 0x00000008
|
||||||
#define CONF_FLAGS_EXEMPTKLINE 0x00000040
|
#define CONF_FLAGS_EXEMPTKLINE 0x00000040
|
||||||
#define CONF_FLAGS_NOLIMIT 0x00000080
|
#define CONF_FLAGS_NOLIMIT 0x00000080
|
||||||
#define CONF_FLAGS_IDLE_LINED 0x00000100
|
|
||||||
#define CONF_FLAGS_SPOOF_IP 0x00000200
|
#define CONF_FLAGS_SPOOF_IP 0x00000200
|
||||||
#define CONF_FLAGS_SPOOF_NOTICE 0x00000400
|
#define CONF_FLAGS_SPOOF_NOTICE 0x00000400
|
||||||
#define CONF_FLAGS_REDIR 0x00000800
|
#define CONF_FLAGS_REDIR 0x00000800
|
||||||
|
@ -128,7 +127,6 @@ struct ConfItem
|
||||||
#define IsConfExemptShide(x) ((x)->flags & CONF_FLAGS_EXEMPTSHIDE)
|
#define IsConfExemptShide(x) ((x)->flags & CONF_FLAGS_EXEMPTSHIDE)
|
||||||
#define IsConfExemptJupe(x) ((x)->flags & CONF_FLAGS_EXEMPTJUPE)
|
#define IsConfExemptJupe(x) ((x)->flags & CONF_FLAGS_EXEMPTJUPE)
|
||||||
#define IsConfExemptResv(x) ((x)->flags & CONF_FLAGS_EXEMPTRESV)
|
#define IsConfExemptResv(x) ((x)->flags & CONF_FLAGS_EXEMPTRESV)
|
||||||
#define IsConfIdlelined(x) ((x)->flags & CONF_FLAGS_IDLE_LINED)
|
|
||||||
#define IsConfDoSpoofIp(x) ((x)->flags & CONF_FLAGS_SPOOF_IP)
|
#define IsConfDoSpoofIp(x) ((x)->flags & CONF_FLAGS_SPOOF_IP)
|
||||||
#define IsConfSpoofNotice(x) ((x)->flags & CONF_FLAGS_SPOOF_NOTICE)
|
#define IsConfSpoofNotice(x) ((x)->flags & CONF_FLAGS_SPOOF_NOTICE)
|
||||||
#define IsConfEncrypted(x) ((x)->flags & CONF_FLAGS_ENCRYPTED)
|
#define IsConfEncrypted(x) ((x)->flags & CONF_FLAGS_ENCRYPTED)
|
||||||
|
@ -207,7 +205,6 @@ struct config_file_entry
|
||||||
int gline_time;
|
int gline_time;
|
||||||
int gline_min_cidr;
|
int gline_min_cidr;
|
||||||
int gline_min_cidr6;
|
int gline_min_cidr6;
|
||||||
int idletime;
|
|
||||||
int hide_server;
|
int hide_server;
|
||||||
int hide_spoof_ips;
|
int hide_spoof_ips;
|
||||||
int hide_error_messages;
|
int hide_error_messages;
|
||||||
|
|
|
@ -285,12 +285,6 @@ static struct InfoStruct info_table[] = {
|
||||||
&ServerInfo.hub,
|
&ServerInfo.hub,
|
||||||
"Server is a hub"
|
"Server is a hub"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"idletime",
|
|
||||||
OUTPUT_DECIMAL,
|
|
||||||
&ConfigFileEntry.idletime,
|
|
||||||
"Number of minutes before a client is considered idle"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"kline_delay",
|
"kline_delay",
|
||||||
OUTPUT_DECIMAL,
|
OUTPUT_DECIMAL,
|
||||||
|
|
|
@ -72,7 +72,6 @@ static void quote_autoconn(struct Client *, char *, int);
|
||||||
static void quote_autoconnall(struct Client *, int);
|
static void quote_autoconnall(struct Client *, int);
|
||||||
static void quote_floodcount(struct Client *, int);
|
static void quote_floodcount(struct Client *, int);
|
||||||
static void quote_identtimeout(struct Client *, int);
|
static void quote_identtimeout(struct Client *, int);
|
||||||
static void quote_idletime(struct Client *, int);
|
|
||||||
static void quote_max(struct Client *, int);
|
static void quote_max(struct Client *, int);
|
||||||
static void quote_operstring(struct Client *, const char *);
|
static void quote_operstring(struct Client *, const char *);
|
||||||
static void quote_spamnum(struct Client *, int);
|
static void quote_spamnum(struct Client *, int);
|
||||||
|
@ -99,7 +98,6 @@ static struct SetStruct set_cmd_table[] = {
|
||||||
{"AUTOCONNALL", quote_autoconnall, 0, 1 },
|
{"AUTOCONNALL", quote_autoconnall, 0, 1 },
|
||||||
{"FLOODCOUNT", quote_floodcount, 0, 1 },
|
{"FLOODCOUNT", quote_floodcount, 0, 1 },
|
||||||
{"IDENTTIMEOUT", quote_identtimeout, 0, 1 },
|
{"IDENTTIMEOUT", quote_identtimeout, 0, 1 },
|
||||||
{"IDLETIME", quote_idletime, 0, 1 },
|
|
||||||
{"MAX", quote_max, 0, 1 },
|
{"MAX", quote_max, 0, 1 },
|
||||||
{"MAXCLIENTS", quote_max, 0, 1 },
|
{"MAXCLIENTS", quote_max, 0, 1 },
|
||||||
{"OPERSTRING", quote_operstring, 1, 0 },
|
{"OPERSTRING", quote_operstring, 1, 0 },
|
||||||
|
@ -213,33 +211,6 @@ quote_identtimeout(struct Client *source_p, int newval)
|
||||||
GlobalSetOptions.ident_timeout);
|
GlobalSetOptions.ident_timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SET IDLETIME */
|
|
||||||
static void
|
|
||||||
quote_idletime(struct Client *source_p, int newval)
|
|
||||||
{
|
|
||||||
if(newval >= 0)
|
|
||||||
{
|
|
||||||
if(newval == 0)
|
|
||||||
{
|
|
||||||
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
|
||||||
"%s has disabled idletime checking", source_p->name);
|
|
||||||
GlobalSetOptions.idletime = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
|
||||||
"%s has changed IDLETIME to %i",
|
|
||||||
source_p->name, newval);
|
|
||||||
GlobalSetOptions.idletime = (newval * 60);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sendto_one_notice(source_p, ":IDLETIME is currently %i",
|
|
||||||
GlobalSetOptions.idletime / 60);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* SET MAX */
|
/* SET MAX */
|
||||||
static void
|
static void
|
||||||
quote_max(struct Client *source_p, int newval)
|
quote_max(struct Client *source_p, int newval)
|
||||||
|
|
28
src/client.c
28
src/client.c
|
@ -307,34 +307,6 @@ check_pings_list(dlink_list * list)
|
||||||
if(!MyConnect(client_p) || IsDead(client_p))
|
if(!MyConnect(client_p) || IsDead(client_p))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if(IsPerson(client_p))
|
|
||||||
{
|
|
||||||
if(!IsExemptKline(client_p) &&
|
|
||||||
GlobalSetOptions.idletime &&
|
|
||||||
!IsOper(client_p) &&
|
|
||||||
!IsIdlelined(client_p) &&
|
|
||||||
((CurrentTime - client_p->localClient->last) > GlobalSetOptions.idletime))
|
|
||||||
{
|
|
||||||
struct ConfItem *aconf;
|
|
||||||
|
|
||||||
aconf = make_conf();
|
|
||||||
aconf->status = CONF_KILL;
|
|
||||||
|
|
||||||
DupString(aconf->host, client_p->host);
|
|
||||||
DupString(aconf->passwd, "idle exceeder");
|
|
||||||
DupString(aconf->user, client_p->username);
|
|
||||||
aconf->port = 0;
|
|
||||||
aconf->hold = CurrentTime + 60;
|
|
||||||
add_temp_kline(aconf);
|
|
||||||
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
|
||||||
"Idle time limit exceeded for %s - temp k-lining",
|
|
||||||
get_client_name(client_p, HIDE_IP));
|
|
||||||
|
|
||||||
exit_client(client_p, client_p, &me, aconf->passwd);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ping = get_client_ping(client_p);
|
ping = get_client_ping(client_p);
|
||||||
|
|
||||||
if(ping < (CurrentTime - client_p->localClient->lasttime))
|
if(ping < (CurrentTime - client_p->localClient->lasttime))
|
||||||
|
|
|
@ -692,8 +692,6 @@ show_iline_prefix(struct Client *sptr, struct ConfItem *aconf, char *name)
|
||||||
*prefix_ptr++ = '^';
|
*prefix_ptr++ = '^';
|
||||||
if(IsOper(sptr) && IsConfExemptLimits(aconf))
|
if(IsOper(sptr) && IsConfExemptLimits(aconf))
|
||||||
*prefix_ptr++ = '>';
|
*prefix_ptr++ = '>';
|
||||||
if(IsOper(sptr) && IsConfIdlelined(aconf))
|
|
||||||
*prefix_ptr++ = '<';
|
|
||||||
*prefix_ptr = '\0';
|
*prefix_ptr = '\0';
|
||||||
strncpy(prefix_ptr, name, USERLEN);
|
strncpy(prefix_ptr, name, USERLEN);
|
||||||
return (prefix_of_host);
|
return (prefix_of_host);
|
||||||
|
|
|
@ -2019,7 +2019,6 @@ static struct ConfEntry conf_general_table[] =
|
||||||
{ "gline_min_cidr6", CF_INT, NULL, 0, &ConfigFileEntry.gline_min_cidr6 },
|
{ "gline_min_cidr6", CF_INT, NULL, 0, &ConfigFileEntry.gline_min_cidr6 },
|
||||||
{ "gline_time", CF_TIME, NULL, 0, &ConfigFileEntry.gline_time },
|
{ "gline_time", CF_TIME, NULL, 0, &ConfigFileEntry.gline_time },
|
||||||
{ "global_snotices", CF_YESNO, NULL, 0, &ConfigFileEntry.global_snotices },
|
{ "global_snotices", CF_YESNO, NULL, 0, &ConfigFileEntry.global_snotices },
|
||||||
{ "idletime", CF_TIME, NULL, 0, &ConfigFileEntry.idletime },
|
|
||||||
{ "hide_spoof_ips", CF_YESNO, NULL, 0, &ConfigFileEntry.hide_spoof_ips },
|
{ "hide_spoof_ips", CF_YESNO, NULL, 0, &ConfigFileEntry.hide_spoof_ips },
|
||||||
{ "dline_with_reason", CF_YESNO, NULL, 0, &ConfigFileEntry.dline_with_reason },
|
{ "dline_with_reason", CF_YESNO, NULL, 0, &ConfigFileEntry.dline_with_reason },
|
||||||
{ "kline_with_reason", CF_YESNO, NULL, 0, &ConfigFileEntry.kline_with_reason },
|
{ "kline_with_reason", CF_YESNO, NULL, 0, &ConfigFileEntry.kline_with_reason },
|
||||||
|
|
|
@ -793,7 +793,6 @@ set_default_conf(void)
|
||||||
ConfigFileEntry.gline_min_cidr6 = 48;
|
ConfigFileEntry.gline_min_cidr6 = 48;
|
||||||
ConfigFileEntry.hide_spoof_ips = YES;
|
ConfigFileEntry.hide_spoof_ips = YES;
|
||||||
ConfigFileEntry.hide_error_messages = 1;
|
ConfigFileEntry.hide_error_messages = 1;
|
||||||
ConfigFileEntry.idletime = 0;
|
|
||||||
ConfigFileEntry.dots_in_ident = 0;
|
ConfigFileEntry.dots_in_ident = 0;
|
||||||
ConfigFileEntry.max_targets = MAX_TARGETS_DEFAULT;
|
ConfigFileEntry.max_targets = MAX_TARGETS_DEFAULT;
|
||||||
DupString(ConfigFileEntry.servlink_path, SLPATH);
|
DupString(ConfigFileEntry.servlink_path, SLPATH);
|
||||||
|
@ -894,8 +893,6 @@ validate_conf(void)
|
||||||
(ConfigFileEntry.client_flood > CLIENT_FLOOD_MAX))
|
(ConfigFileEntry.client_flood > CLIENT_FLOOD_MAX))
|
||||||
ConfigFileEntry.client_flood = CLIENT_FLOOD_MAX;
|
ConfigFileEntry.client_flood = CLIENT_FLOOD_MAX;
|
||||||
|
|
||||||
GlobalSetOptions.idletime = (ConfigFileEntry.idletime * 60);
|
|
||||||
|
|
||||||
if(!split_users || !split_servers ||
|
if(!split_users || !split_servers ||
|
||||||
(!ConfigChannel.no_create_on_split && !ConfigChannel.no_join_on_split))
|
(!ConfigChannel.no_create_on_split && !ConfigChannel.no_join_on_split))
|
||||||
{
|
{
|
||||||
|
|
|
@ -835,13 +835,6 @@ report_and_set_user_flags(struct Client *source_p, struct ConfItem *aconf)
|
||||||
sendto_one_notice(source_p, "*** You are exempt from user limits. congrats.");
|
sendto_one_notice(source_p, "*** You are exempt from user limits. congrats.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If this user is exempt from idle time outs */
|
|
||||||
if(IsConfIdlelined(aconf))
|
|
||||||
{
|
|
||||||
SetIdlelined(source_p);
|
|
||||||
sendto_one_notice(source_p, ":*** You are exempt from idle limits. congrats.");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(IsConfExemptFlood(aconf))
|
if(IsConfExemptFlood(aconf))
|
||||||
{
|
{
|
||||||
SetExemptFlood(source_p);
|
SetExemptFlood(source_p);
|
||||||
|
|
Loading…
Reference in a new issue