diff options
Diffstat (limited to 'src/conf_parser.y')
-rw-r--r-- | src/conf_parser.y | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/src/conf_parser.y b/src/conf_parser.y index 031b3d1..ef987fe 100644 --- a/src/conf_parser.y +++ b/src/conf_parser.y @@ -741,25 +741,27 @@ serverinfo_vhost6: VHOST6 '=' QSTRING ';' serverinfo_max_clients: T_MAX_CLIENTS '=' NUMBER ';' { - if (conf_parser_ctx.pass == 2) + if (conf_parser_ctx.pass != 2) + break; + + if ($3 < MAXCLIENTS_MIN) { - recalc_fdlimit(NULL); + char buf[IRCD_BUFSIZE]; - if ($3 < MAXCLIENTS_MIN) - { - char buf[IRCD_BUFSIZE]; - ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN); - yyerror(buf); - } - else if ($3 > MAXCLIENTS_MAX) - { - char buf[IRCD_BUFSIZE]; - ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX); - yyerror(buf); - } - else - ServerInfo.max_clients = $3; + snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN); + yyerror(buf); + ServerInfo.max_clients = MAXCLIENTS_MIN; } + else if ($3 > MAXCLIENTS_MAX) + { + char buf[IRCD_BUFSIZE]; + + snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX); + yyerror(buf); + ServerInfo.max_clients = MAXCLIENTS_MAX; + } + else + ServerInfo.max_clients = $3; }; serverinfo_hub: HUB '=' TBOOL ';' |