From: Willy Tarreau Date: Wed, 23 Nov 2016 10:26:56 +0000 (+0100) Subject: REORG: cli: move "set maxconn server" to server.c X-Git-Tag: v1.7.0~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b802627eb3f714aa23b6514318e905af11f99f30;p=thirdparty%2Fhaproxy.git REORG: cli: move "set maxconn server" to server.c It's used to manipulate the server's maxconn setting. --- diff --git a/src/cli.c b/src/cli.c index fad2217f58..177a955a7c 100644 --- a/src/cli.c +++ b/src/cli.c @@ -580,22 +580,6 @@ static int stats_sock_parse_request(struct stream_interface *si, char *line) return 1; } - else if (strcmp(args[2], "server") == 0) { - struct server *sv; - const char *warning; - - sv = expect_server_admin(s, si, args[3]); - if (!sv) - return 1; - - warning = server_parse_maxconn_change_request(sv, args[4]); - if (warning) { - appctx->ctx.cli.msg = warning; - appctx->st0 = STAT_CLI_PRINT; - } - - return 1; - } else { appctx->ctx.cli.msg = "'set maxconn' only supports 'frontend', 'server', and 'global'.\n"; appctx->st0 = STAT_CLI_PRINT; diff --git a/src/server.c b/src/server.c index fb891f8275..53db7e413c 100644 --- a/src/server.c +++ b/src/server.c @@ -3562,9 +3562,30 @@ static int cli_parse_set_weight(char **args, struct appctx *appctx, void *privat return 1; } +/* parse a "set maxconn server" command. It always returns 1. */ +static int cli_parse_set_maxconn_server(char **args, struct appctx *appctx, void *private) +{ + struct server *sv; + const char *warning; + + if (!cli_has_level(appctx, ACCESS_LVL_ADMIN)) + return 1; + + sv = cli_find_server(appctx, args[3]); + if (!sv) + return 1; + + warning = server_parse_maxconn_change_request(sv, args[4]); + if (warning) { + appctx->ctx.cli.msg = warning; + appctx->st0 = STAT_CLI_PRINT; + } + return 1; +} /* register cli keywords */ static struct cli_kw_list cli_kws = {{ },{ + { { "set", "maxconn", "server", NULL }, "set maxconn server : change a server's maxconn setting", cli_parse_set_maxconn_server, NULL }, { { "set", "server", NULL }, "set server : change a server's state, weight or address", cli_parse_set_server }, { { "get", "weight", NULL }, "get weight : report a server's current weight", cli_parse_get_weight }, { { "set", "weight", NULL }, "set weight : change a server's weight (deprecated)", cli_parse_set_weight },