MINOR: cli: ability to change a server's port

Enrichment of the 'set server <b>/<s> addr' cli directive to allow changing
now a server's port.
The new syntax looks like:
  set server <b>/<s> addr [port <port>]
This commit is contained in:
Baptiste Assmann 2016-08-03 22:34:12 +02:00 committed by Willy Tarreau
parent d458adcc52
commit 3749ebf6fc
2 changed files with 18 additions and 2 deletions

View File

@ -1582,8 +1582,11 @@ set rate-limit ssl-sessions global <value>
is passed in number of sessions per second sent to the SSL stack. It applies
before the handshake in order to protect the stack against handshake abuses.
set server <backend>/<server> addr <ip4 or ip6 address>
set server <backend>/<server> addr <ip4 or ip6 address> [port <port>]
Replace the current IP address of a server by the one provided.
Optionnaly, the port can be changed using the 'port' parameter.
Note that changing the port also support switching from/to port mapping
(notation with +X or -Y), only if a port is configured for the health check.
set server <backend>/<server> agent [ up | down ]
Force a server's agent to a new state. This can be useful to immediately

View File

@ -1800,7 +1800,20 @@ static int stats_sock_parse_request(struct stream_interface *si, char *line)
appctx->st0 = STAT_CLI_PRINT;
}
else if (strcmp(args[3], "addr") == 0) {
warning = server_parse_addr_change_request(sv, args[4], "stats command");
char *addr = NULL;
char *port = NULL;
if (strlen(args[4]) == 0) {
appctx->ctx.cli.msg = "set server <b>/<s> requires an <addr> .\n";
appctx->st0 = STAT_CLI_PRINT;
return 1;
}
else {
addr = args[4];
}
if (strcmp(args[5], "port") == 0) {
port = args[6];
}
warning = update_server_addr_port(sv, addr, port, "stats socket command");
if (warning) {
appctx->ctx.cli.msg = warning;
appctx->st0 = STAT_CLI_PRINT;