burst_topicwho = yes;
kick_on_split_riding = no;
only_ascii_channels = no;
+ cycle_host_change = yes;
resv_forcepart = yes;
};
* 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.
int burst_topicwho;
int kick_on_split_riding;
int only_ascii_channels;
+ int cycle_host_change;
int resv_forcepart;
};
&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,
{ "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 },
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;
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;