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.
diff --git a/doc/management.txt b/doc/management.txt
index dd604ae..c4e76ed 100644
--- a/doc/management.txt
+++ b/doc/management.txt
@@ -2042,6 +2042,7 @@
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
diff --git a/include/types/server.h b/include/types/server.h
index 8fb6f2e..724d496 100644
--- a/include/types/server.h
+++ b/include/types/server.h
@@ -123,9 +123,10 @@
"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
diff --git a/src/proxy.c b/src/proxy.c
index 1481089..641d4fa 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -1458,13 +1458,13 @@
"%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;
diff --git a/src/server.c b/src/server.c
index 008bafa..f457d55 100644
--- a/src/server.c
+++ b/src/server.c
@@ -2892,8 +2892,11 @@
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 @@
* 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 @@
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 @@
}
}
+ if (port_str)
+ srv->svc_port = port;
+
break;
default:
chunk_appendf(msg, ", version '%d' not supported", version);
@@ -3416,6 +3432,7 @@
* 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;