MINOR: cfgparse: move defproxy to cfgparse-listen as a static

We don't want to expose this one anymore as we'll soon keep multiple
default proxies. Let's move it inside the parser which is the only
place which still uses it, and initialize it on the fly once needed
instead of doing it at boot time.
This commit is contained in:
Willy Tarreau 2021-02-12 12:29:28 +01:00
parent bb8669ae28
commit 7d0c143185
4 changed files with 9 additions and 5 deletions

View File

@ -84,7 +84,6 @@ extern int cfg_maxconn;
extern char *cfg_scope;
extern struct cfg_kw_list cfg_keywords;
extern char *cursection;
extern struct proxy defproxy;
int cfg_parse_global(const char *file, int linenum, char **args, int inv);
int cfg_parse_listen(const char *file, int linenum, char **args, int inv);

View File

@ -33,6 +33,9 @@
#include <haproxy/tcpcheck.h>
#include <haproxy/uri_auth.h>
static struct proxy defproxy; /* fake proxy used to assign default values on all instances */
/* Report a warning if a rule is placed after a 'tcp-request session' rule.
* Return 1 if the warning has been emitted, otherwise 0.
*/
@ -177,6 +180,12 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
char *errmsg = NULL;
struct bind_conf *bind_conf;
if (defproxy.obj_type != OBJ_TYPE_PROXY) {
/* defproxy not initialized yet */
init_new_proxy(&defproxy);
proxy_preset_defaults(&defproxy);
}
if (strcmp(args[0], "listen") == 0)
rc = PR_CAP_LISTEN;
else if (strcmp(args[0], "frontend") == 0)

View File

@ -89,7 +89,6 @@ struct list sections = LIST_HEAD_INIT(sections);
struct list postparsers = LIST_HEAD_INIT(postparsers);
char *cursection = NULL;
struct proxy defproxy = { }; /* fake proxy used to assign default values on all instances */
int cfg_maxpconn = 0; /* # of simultaneous connections per proxy (-N) */
int cfg_maxconn = 0; /* # of simultaneous connections, (-n) */
char *cfg_scope = NULL; /* the current scope during the configuration parsing */

View File

@ -1822,9 +1822,6 @@ static void init(int argc, char **argv)
global.maxsock = 10; /* reserve 10 fds ; will be incremented by socket eaters */
init_new_proxy(&defproxy);
proxy_preset_defaults(&defproxy);
/* in wait mode, we don't try to read the configuration files */
if (!(global.mode & MODE_MWORKER_WAIT)) {
char *env_cfgfiles = NULL;