MINOR: Add server port field to server state file.

This patch adds server ports to server state file at the end of each line
for backward compatibility.
This commit is contained in:
Frdric Lcaille 2017-08-01 08:47:19 +02:00 committed by Willy Tarreau
parent 48a8332a4a
commit 3169471964
4 changed files with 23 additions and 4 deletions

View File

@ -2042,6 +2042,7 @@ show servers state [<backend>]
srv_f_forced_id: Flag to know if the server's ID is forced by
configuration.
srv_fqdn: Server FQDN.
srv_port: Server port.
show sess
Dump all known sessions. Avoid doing this on slow connections as this can

View File

@ -123,9 +123,10 @@ enum srv_initaddr {
"srv_agent_state " \
"bk_f_forced_id " \
"srv_f_forced_id " \
"srv_fqdn"
"srv_fqdn " \
"srv_port"
#define SRV_STATE_FILE_MAX_FIELDS 18
#define SRV_STATE_FILE_MAX_FIELDS 19
#define SRV_STATE_FILE_NB_FIELDS_VERSION_1 18
#define SRV_STATE_LINE_MAXLEN 512

View File

@ -1458,13 +1458,13 @@ static int dump_servers_state(struct stream_interface *si, struct chunk *buf)
"%d %s %s "
"%d %d %d %d %ld "
"%d %d %d %d %d "
"%d %d %s"
"%d %d %s %u"
"\n",
px->uuid, px->id,
srv->puid, srv->id, srv_addr,
srv->state, srv->admin, srv->uweight, srv->iweight, (long int)srv_time_since_last_change,
srv->check.status, srv->check.result, srv->check.health, srv->check.state, srv->agent.state,
bk_f_forced_id, srv_f_forced_id, srv->hostname ? srv->hostname : "-");
bk_f_forced_id, srv_f_forced_id, srv->hostname ? srv->hostname : "-", srv->svc_port);
if (bi_putchk(si_ic(si), &trash) == -1) {
si_applet_cant_put(si);
return 0;

View File

@ -2892,8 +2892,11 @@ static void srv_update_state(struct server *srv, int version, char **params)
int srv_f_forced_id;
int fqdn_set_by_cli;
const char *fqdn;
const char *port_str;
unsigned int port;
fqdn = NULL;
port = 0;
msg = get_trash_chunk();
switch (version) {
case 1:
@ -2913,6 +2916,7 @@ static void srv_update_state(struct server *srv, int version, char **params)
* bk_f_forced_id: params[11]
* srv_f_forced_id: params[12]
* srv_fqdn: params[13]
* srv_port: params[14]
*/
/* validating srv_op_state */
@ -3036,6 +3040,15 @@ static void srv_update_state(struct server *srv, int version, char **params)
fqdn = NULL;
}
port_str = params[14];
if (port_str) {
port = strl2uic(port_str, strlen(port_str));
if (port > USHRT_MAX) {
chunk_appendf(msg, ", invalid srv_port value '%s'", port_str);
port_str = NULL;
}
}
/* don't apply anything if one error has been detected */
if (msg->len)
goto out;
@ -3167,6 +3180,9 @@ static void srv_update_state(struct server *srv, int version, char **params)
}
}
if (port_str)
srv->svc_port = port;
break;
default:
chunk_appendf(msg, ", version '%d' not supported", version);
@ -3416,6 +3432,7 @@ void apply_server_state(void)
* bk_f_forced_id: params[15] => srv_params[11]
* srv_f_forced_id: params[16] => srv_params[12]
* srv_fqdn: params[17] => srv_params[13]
* srv_port: params[18] => srv_params[14]
*/
if (arg >= 4) {
srv_params[srv_arg] = cur;