diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2016-06-05 14:16:36 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2016-06-05 17:47:56 +0100 |
commit | 634111fc07826dcf7f1f408c5186dc9f842d2a5c (patch) | |
tree | f5afb868285fb4438f4f00574f63f1ef5c0392f0 /src/conf_parser.y | |
parent | 0a892daa10889c2c29855276c0ac34082dea6dfa (diff) |
Add support for configurable initial channel modes
Diffstat (limited to 'src/conf_parser.y')
-rw-r--r-- | src/conf_parser.y | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/src/conf_parser.y b/src/conf_parser.y index 3534931..3a1948b 100644 --- a/src/conf_parser.y +++ b/src/conf_parser.y @@ -51,6 +51,7 @@ #include "numeric.h" #include "s_user.h" #include "motd.h" +#include "channel_mode.h" #ifdef HAVE_LIBCRYPTO #include <openssl/rsa.h> @@ -162,6 +163,7 @@ reset_block_state(void) %token CONNECTFREQ %token CYCLE_ON_HOST_CHANGE %token DEFAULT_FLOODCOUNT +%token DEFAULT_MODES %token DEFAULT_SPLIT_SERVER_COUNT %token DEFAULT_SPLIT_USER_COUNT %token DENY @@ -308,17 +310,22 @@ reset_block_state(void) %token T_FULL %token T_GLOBOPS %token T_INVISIBLE +%token T_INVITEONLY %token T_IPV4 %token T_IPV6 %token T_LOCOPS %token T_LOG %token T_MAX_CLIENTS +%token T_MODERATED %token T_NCHANGE %token T_NONONREG +%token T_NOPRIVMSGS %token T_OPERWALL +%token T_PRIVATE %token T_RECVQ %token T_REJ %token T_RESTART +%token T_SECRET %token T_SERVER %token T_SERVICE %token T_SERVICES_NAME @@ -335,6 +342,7 @@ reset_block_state(void) %token T_SSL_SERVER_METHOD %token T_SSLV3 %token T_TLSV1 +%token T_TOPICLIMIT %token T_UMODES %token T_UNAUTH %token T_UNDLINE @@ -2878,7 +2886,8 @@ channel_item: channel_max_bans | channel_no_create_on_split | channel_no_join_on_split | channel_jflood_count | channel_jflood_time | - channel_disable_fake_channels | error; + channel_disable_fake_channels | channel_default_modes | + error; channel_disable_fake_channels: DISABLE_FAKE_CHANNELS '=' TBOOL ';' { @@ -2940,6 +2949,32 @@ channel_jflood_time: JOIN_FLOOD_TIME '=' timespec ';' GlobalSetOptions.joinfloodtime = $3; }; +channel_default_modes: DEFAULT_MODES +{ + ConfigChannel.default_modes = 0; +} '=' channel_default_mode_items ';' ; + +channel_default_mode_items: channel_default_mode_items ',' channel_default_mode_item | channel_default_mode_item; +channel_default_mode_item: T_PRIVATE +{ + ConfigChannel.default_modes |= MODE_PRIVATE; +} | T_SECRET +{ + ConfigChannel.default_modes |= MODE_SECRET; +} | T_MODERATED +{ + ConfigChannel.default_modes |= MODE_MODERATED; +} | T_TOPICLIMIT +{ + ConfigChannel.default_modes |= MODE_TOPICLIMIT; +} | T_INVITEONLY +{ + ConfigChannel.default_modes |= MODE_INVITEONLY; +} | T_NOPRIVMSGS +{ + ConfigChannel.default_modes |= MODE_NOPRIVMSGS; +}; + /*************************************************************************** * section serverhide ***************************************************************************/ |