Added cycle_host_change option.

This commit is contained in:
JD Horelick 2010-02-23 19:50:45 -05:00
parent 70731d4fed
commit c3a0fde28f
7 changed files with 17 additions and 1 deletions

View File

@ -347,6 +347,7 @@ channel {
burst_topicwho = yes;
kick_on_split_riding = no;
only_ascii_channels = no;
cycle_host_change = yes;
resv_forcepart = yes;
};

View File

@ -761,6 +761,12 @@ channel {
* or non-ASCII).
*/
only_ascii_channels = no;
/* cycle_host_change: Should a user be cycled in the channels
* they're in when their host changes. If set to no, this may
* cause client desyncs.
*/
cycle_host_change = yes;
/* resv_forcepart: force any local users to part a channel
* when a RESV is issued.

View File

@ -236,6 +236,7 @@ struct config_channel_entry
int burst_topicwho;
int kick_on_split_riding;
int only_ascii_channels;
int cycle_host_change;
int resv_forcepart;
};

View File

@ -548,6 +548,12 @@ static struct InfoStruct info_table[] = {
&ConfigChannel.only_ascii_channels,
"Controls whether non-ASCII is disabled for JOIN"
},
{
"cycle_host_change",
OUTPUT_BOOLEAN_YN,
&ConfigChannel.cycle_host_change,
"Controls if when a users' host changes, they cycle channels",
},
{
"use_except",
OUTPUT_BOOLEAN_YN,

View File

@ -2215,6 +2215,7 @@ static struct ConfEntry conf_channel_table[] =
{ "no_create_on_split", CF_YESNO, NULL, 0, &ConfigChannel.no_create_on_split },
{ "no_join_on_split", CF_YESNO, NULL, 0, &ConfigChannel.no_join_on_split },
{ "only_ascii_channels", CF_YESNO, NULL, 0, &ConfigChannel.only_ascii_channels },
{ "cycle_host_change", CF_YESNO, NULL, 0, &ConfigChannel.cycle_host_change },
{ "use_except", CF_YESNO, NULL, 0, &ConfigChannel.use_except },
{ "use_invex", CF_YESNO, NULL, 0, &ConfigChannel.use_invex },
{ "use_knock", CF_YESNO, NULL, 0, &ConfigChannel.use_knock },

View File

@ -755,6 +755,7 @@ set_default_conf(void)
ConfigChannel.max_bans = 25;
ConfigChannel.max_bans_large = 500;
ConfigChannel.only_ascii_channels = NO;
ConfigChannel.cycle_host_change = YES;
ConfigChannel.burst_topicwho = NO;
ConfigChannel.kick_on_split_riding = NO;

View File

@ -1435,7 +1435,7 @@ change_nick_user_host(struct Client *target_p, const char *nick, const char *use
struct membership *mscptr;
int changed = irccmp(target_p->name, nick);
int changed_case = strcmp(target_p->name, nick);
int do_qjm = irccmp(target_p->username, user) || irccmp(target_p->host, host);
int do_qjm = irccmp(target_p->username, user) || (irccmp(target_p->host, host) && ConfigChannel.cycle_host_change);
char mode[10], modeval[NICKLEN * 2 + 2], reason[256], *mptr;
va_list ap;