From: Valentine Krasnobaeva Date: Wed, 10 Jul 2024 12:18:12 +0000 (+0200) Subject: MINOR: limits: add is_any_limit_configured X-Git-Tag: v3.1-dev4~107 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a0b44b122067676ad13d8348a17e6c5bd279901;p=thirdparty%2Fhaproxy.git MINOR: limits: add is_any_limit_configured Let's encapsulate the check of all supported for now process internal limits in a separate function. This will help in cases, when we need to simply check if we have even only one limit set in the configuration file. It's important, as the default value for a one limit (fd-hard-limits, for example) sometimes must not affect the computation of the others. --- diff --git a/src/limits.c b/src/limits.c index 60c07d2061..c5b4820c64 100644 --- a/src/limits.c +++ b/src/limits.c @@ -41,6 +41,21 @@ int raise_rlim_nofile(struct rlimit *old_limit, struct rlimit *new_limit) return ret; } +/* Encapsulates the check of all supported for now process internal limits, + * which could be provided via config or/and cmdline. Returns 1, if even only + * one supported limit is set, otherwise 0. + */ +static int is_any_limit_configured() +{ + int ret = 0; + + if (global.maxconn || global.rlimit_nofile || global.rlimit_memmax || + global.fd_hard_limit) + ret = 1; + + return ret; +} + /* considers splicing proxies' maxconn, computes the ideal global.maxpipes * setting, and returns it. It may return -1 meaning "unlimited" if some * unlimited proxies have been found and the global.maxconn value is not yet @@ -134,8 +149,7 @@ int compute_ideal_maxconn() * if only one of these ha-specific limits is presented in config or in * the cmdline. */ - if (!global.fd_hard_limit && !global.maxconn && !global.rlimit_nofile - && !global.rlimit_memmax) + if (!is_any_limit_configured()) global.fd_hard_limit = DEFAULT_MAXFD; if (remain > global.fd_hard_limit)