diff --git a/doc/example.conf b/doc/example.conf index 0f08301..f730b83 100755 --- a/doc/example.conf +++ b/doc/example.conf @@ -519,6 +519,7 @@ general { #static_quit = "I like turtles!"; servicestring = "is a Network Service"; disable_fake_channels = no; + hide_channel_below_users = 3; tkline_expire_notices = no; default_floodcount = 10; failed_oper_notice = yes; diff --git a/doc/reference.conf b/doc/reference.conf index f77e60c..0c21b38 100755 --- a/doc/reference.conf +++ b/doc/reference.conf @@ -1108,6 +1108,12 @@ general { */ disable_fake_channels = no; + /* hide_channel_below_users: Amount of users a channel must have in it + * before it is shown in a standard LIST. This can be overridden by + * invoking LIST like: /LIST <3 + */ + hide_channel_below_users = 3; + /* tkline_expire_notices: give a notice to opers when a tkline * expires */ diff --git a/include/s_conf.h b/include/s_conf.h index ebe88f1..ec3a222 100644 --- a/include/s_conf.h +++ b/include/s_conf.h @@ -166,6 +166,7 @@ struct config_file_entry unsigned char compression_level; int disable_fake_channels; + int hide_channel_below_users; int dots_in_ident; int failed_oper_notice; int anti_nick_flood; diff --git a/modules/m_list.c b/modules/m_list.c index ec2656d..91a1678 100644 --- a/modules/m_list.c +++ b/modules/m_list.c @@ -152,8 +152,8 @@ static int mo_list(struct Client *client_p, struct Client *source_p, int parc, c return 0; } - /* XXX rather arbitrary -- jilles */ - params.users_min = 3; + /* Let the user set it */ + params.users_min = ConfigFileEntry.hide_channel_below_users; params.users_max = INT_MAX; if (parc > 1 && parv[1] != NULL && !IsChannelName(parv[1])) diff --git a/src/newconf.c b/src/newconf.c index 8eeca1e..df662d8 100644 --- a/src/newconf.c +++ b/src/newconf.c @@ -2201,6 +2201,7 @@ static struct ConfEntry conf_general_table[] = { "anti_spam_exit_message_time", CF_TIME, NULL, 0, &ConfigFileEntry.anti_spam_exit_message_time }, { "use_part_messages", CF_YESNO, NULL, 0, &ConfigFileEntry.use_part_messages }, { "disable_fake_channels", CF_YESNO, NULL, 0, &ConfigFileEntry.disable_fake_channels }, + { "hide_channel_below_users", CF_INT, NULL, 0, &ConfigFileEntry.hide_channel_below_users }, { "min_nonwildcard_simple", CF_INT, NULL, 0, &ConfigFileEntry.min_nonwildcard_simple }, { "non_redundant_klines", CF_YESNO, NULL, 0, &ConfigFileEntry.non_redundant_klines }, { "tkline_expire_notices", CF_YESNO, NULL, 0, &ConfigFileEntry.tkline_expire_notices }, diff --git a/src/s_conf.c b/src/s_conf.c index 1cf0c26..f54dc80 100644 --- a/src/s_conf.c +++ b/src/s_conf.c @@ -698,6 +698,7 @@ set_default_conf(void) ConfigFileEntry.failed_oper_notice = YES; ConfigFileEntry.anti_nick_flood = NO; ConfigFileEntry.disable_fake_channels = NO; + ConfigFileEntry.hide_channel_below_users = 3; ConfigFileEntry.max_nick_time = 20; ConfigFileEntry.max_nick_changes = 5; ConfigFileEntry.max_accept = 20;