log - Add slurm_conf_t->log_flags for LogTimeFormat options

Give the LogTimeFormat options a member of their own so the format keeps
the whole of log_fmt and neither has to be masked out of the other.

The member is typed log_flags_t rather than a width, so it says what it
holds. An enum has no guaranteed width, so every serialization casts to
the uint16_t the wire carries.
diff --git a/slurm/slurm.h b/slurm/slurm.h
index eaabbd4..399248e 100644
--- a/slurm/slurm.h
+++ b/slurm/slurm.h
@@ -3163,6 +3163,7 @@
 	char *launch_params;	/* step launcher plugin options */
 	char *license_params; /* license parameters */
 	char *licenses;		/* licenses available on this cluster */
+	log_flags_t log_flags; /* Log file timestamp options */
 	uint16_t log_fmt;       /* Log file timestamp format */
 	char *mail_domain;	/* default domain to append to usernames */
 	char *mail_prog;	/* pathname of mail program */
diff --git a/src/common/read_config.c b/src/common/read_config.c
index 4920b20..340643f 100644
--- a/src/common/read_config.c
+++ b/src/common/read_config.c
@@ -4380,6 +4380,7 @@
 	(void) s_p_get_string(&conf->licenses, "Licenses", hashtbl);
 
 	/* Default log format */
+	conf->log_flags = LOG_FLAGS_DEFAULT;
 	conf->log_fmt = LOG_FMT_DEFAULT;
 	if (s_p_get_string(&temp_str, "LogTimeFormat", hashtbl)) {
 		/*
diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c
index 2efda85..8f72785 100644
--- a/src/common/slurm_protocol_pack.c
+++ b/src/common/slurm_protocol_pack.c
@@ -4241,6 +4241,7 @@
 		packstr(conf->launch_params, buffer);
 		packstr(conf->license_params, buffer);
 		packstr(conf->licenses, buffer);
+		pack16((uint16_t) conf->log_flags, buffer);
 		pack16(conf->log_fmt, buffer);
 
 		pack32(conf->max_array_sz, buffer);
@@ -5204,6 +5205,7 @@
 static int _unpack_slurm_conf(slurm_conf_t **conf_ptr,
 			      const uint16_t protocol_version, buf_t *buffer)
 {
+	uint16_t uint16_tmp = 0;
 	uint32_t uint32_tmp = 0;
 	list_t *tmp_list = NULL;
 	slurm_conf_t *conf = xmalloc(sizeof(*conf));
@@ -5328,6 +5330,8 @@
 		safe_unpackstr(&conf->launch_params, buffer);
 		safe_unpackstr(&conf->license_params, buffer);
 		safe_unpackstr(&conf->licenses, buffer);
+		safe_unpack16(&uint16_tmp, buffer);
+		conf->log_flags = uint16_tmp;
 		safe_unpack16(&conf->log_fmt, buffer);
 
 		safe_unpack32(&conf->max_array_sz, buffer);
diff --git a/src/plugins/data_parser/v0.0.46/parsers.c b/src/plugins/data_parser/v0.0.46/parsers.c
index 57c179f..c955ac1 100644
--- a/src/plugins/data_parser/v0.0.46/parsers.c
+++ b/src/plugins/data_parser/v0.0.46/parsers.c
@@ -12153,6 +12153,7 @@
 	add_parse(CSV_STRING, launch_params, "LaunchParameters", "Step launcher plugin options"),
 	add_parse(CSV_STRING, licenses, "Licenses", "Licenses available on this cluster"),
 	add_parse(CSV_STRING, license_params, "LicenseParameters", "Options for licenses/HRES"),
+	add_skip(log_flags),
 	add_parse(LOG_TIME_FORMAT, log_fmt, "LogTimeFormat", "Format of the timestamp in slurmctld and slurmd log files"),
 	add_parse(STRING, mail_domain, "MailDomain", "Default domain to append to usernames"),
 	add_parse(STRING, mail_prog, "MailProg", "Pathname of mail program"),
@@ -12425,6 +12426,7 @@
 	add_skip(launch_params),
 	add_skip(licenses),
 	add_skip(license_params),
+	add_skip(log_flags),
 	add_skip(log_fmt),
 	add_skip(mail_domain),
 	add_skip(mail_prog),
diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c
index 93b647a..af652d1 100644
--- a/src/slurmctld/proc_req.c
+++ b/src/slurmctld/proc_req.c
@@ -408,6 +408,7 @@
 	conf_ptr->launch_params       = xstrdup(conf->launch_params);
 	conf_ptr->license_params = xstrdup(conf->license_params);
 	conf_ptr->licenses            = xstrdup(conf->licenses);
+	conf_ptr->log_flags = conf->log_flags;
 	conf_ptr->log_fmt             = conf->log_fmt;
 
 	conf_ptr->mail_domain         = xstrdup(conf->mail_domain);
diff --git a/src/slurmd/common/slurmstepd_init.c b/src/slurmd/common/slurmstepd_init.c
index 3717b2b..e2c7ee9 100644
--- a/src/slurmd/common/slurmstepd_init.c
+++ b/src/slurmd/common/slurmstepd_init.c
@@ -224,6 +224,7 @@
 	pack16(slurm_conf.kill_wait, buffer);
 	packstr(slurm_conf.launch_params, buffer);
 	/* licenses */
+	pack16((uint16_t) slurm_conf.log_flags, buffer);
 	pack16(slurm_conf.log_fmt, buffer);
 	/* mail_domain */
 	/* mail_prog */
@@ -372,6 +373,7 @@
 extern int unpack_slurm_conf_lite_no_alloc(buf_t *buffer)
 {
 	uint16_t srun_port_min = 0, srun_port_max = 0;
+	uint16_t uint16_tmp = 0;
 
 	init_slurm_conf(&slurm_conf);
 	/* last_update */
@@ -463,6 +465,8 @@
 	safe_unpack16(&slurm_conf.kill_wait, buffer);
 	safe_unpackstr(&slurm_conf.launch_params, buffer);
 	/* licenses */
+	safe_unpack16(&uint16_tmp, buffer);
+	slurm_conf.log_flags = uint16_tmp;
 	safe_unpack16(&slurm_conf.log_fmt, buffer);
 	/* mail_domain */
 	/* mail_prog */
diff --git a/src/slurmdbd/read_config.c b/src/slurmdbd/read_config.c
index 06e3b7e..aade44d 100644
--- a/src/slurmdbd/read_config.c
+++ b/src/slurmdbd/read_config.c
@@ -400,6 +400,7 @@
 		}
 
 		/* Default log time format */
+		slurm_conf.log_flags = LOG_FLAGS_DEFAULT;
 		slurm_conf.log_fmt = LOG_FMT_DEFAULT;
 		if (s_p_get_string(&temp_str, "LogTimeFormat", tbl)) {
 			if (xstrcasestr(temp_str, "iso8601_ms"))