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 fad2217..177a955 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -580,22 +580,6 @@
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 fb891f8..53db7e4 100644
--- a/src/server.c
+++ b/src/server.c
@@ -3562,9 +3562,30 @@
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 },