From 2d3592d2189f2976266941a205a795d8e26fc40a Mon Sep 17 00:00:00 2001
From: Danny Auble <da@schedmd.com>
Date: Wed, 9 Oct 2013 10:25:50 -0700
Subject: [PATCH] remove unneeded (unused) switch_node_info_t *switch_nodeinfo;
 from the epilog_complete_msg_t message

---
 src/common/slurm_protocol_defs.c |  1 -
 src/common/slurm_protocol_defs.h |  1 -
 src/common/slurm_protocol_pack.c | 45 ++++++++++++++++++++++++--------
 src/slurmd/slurmd/req.c          |  5 ----
 4 files changed, 34 insertions(+), 18 deletions(-)

diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c
index bffba254b6f..7ed76261d70 100644
--- a/src/common/slurm_protocol_defs.c
+++ b/src/common/slurm_protocol_defs.c
@@ -818,7 +818,6 @@ extern void slurm_free_epilog_complete_msg(epilog_complete_msg_t * msg)
 {
 	if (msg) {
 		xfree(msg->node_name);
-		switch_g_free_node_info(&msg->switch_nodeinfo);
 		xfree(msg);
 	}
 }
diff --git a/src/common/slurm_protocol_defs.h b/src/common/slurm_protocol_defs.h
index b0dc703118a..9ee3868c7e3 100644
--- a/src/common/slurm_protocol_defs.h
+++ b/src/common/slurm_protocol_defs.h
@@ -602,7 +602,6 @@ typedef struct epilog_complete_msg {
 	uint32_t job_id;
 	uint32_t return_code;
 	char    *node_name;
-	switch_node_info_t *switch_nodeinfo;
 } epilog_complete_msg_t;
 
 typedef struct reboot_msg {
diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c
index fa41c442362..4db0c5ed1fc 100644
--- a/src/common/slurm_protocol_pack.c
+++ b/src/common/slurm_protocol_pack.c
@@ -3680,10 +3680,21 @@ _pack_epilog_comp_msg(epilog_complete_msg_t * msg, Buf buffer,
 {
 	xassert(msg != NULL);
 
-	pack32((uint32_t)msg->job_id, buffer);
-	pack32((uint32_t)msg->return_code, buffer);
-	packstr(msg->node_name, buffer);
-	switch_g_pack_node_info(msg->switch_nodeinfo, buffer, protocol_version);
+	if (protocol_version >= SLURM_13_12_PROTOCOL_VERSION) {
+		pack32((uint32_t)msg->job_id, buffer);
+		pack32((uint32_t)msg->return_code, buffer);
+		packstr(msg->node_name, buffer);
+	} else {
+		switch_node_info_t *switch_nodeinfo = NULL;
+
+		pack32((uint32_t)msg->job_id, buffer);
+		pack32((uint32_t)msg->return_code, buffer);
+		packstr(msg->node_name, buffer);
+		switch_g_alloc_node_info(&switch_nodeinfo);
+		switch_g_pack_node_info(switch_nodeinfo, buffer,
+					protocol_version);
+		switch_g_free_node_info(&switch_nodeinfo);
+	}
 }
 
 static int
@@ -3698,13 +3709,25 @@ _unpack_epilog_comp_msg(epilog_complete_msg_t ** msg, Buf buffer,
 	tmp_ptr = xmalloc(sizeof(epilog_complete_msg_t));
 	*msg = tmp_ptr;
 
-	safe_unpack32(&(tmp_ptr->job_id), buffer);
-	safe_unpack32(&(tmp_ptr->return_code), buffer);
-	safe_unpackstr_xmalloc(& (tmp_ptr->node_name), &uint32_tmp, buffer);
-	if (switch_g_alloc_node_info(&tmp_ptr->switch_nodeinfo)
-	    ||  switch_g_unpack_node_info(tmp_ptr->switch_nodeinfo, buffer,
-					  protocol_version))
-		goto unpack_error;
+	if (protocol_version >= SLURM_13_12_PROTOCOL_VERSION) {
+		safe_unpack32(&(tmp_ptr->job_id), buffer);
+		safe_unpack32(&(tmp_ptr->return_code), buffer);
+		safe_unpackstr_xmalloc(&(tmp_ptr->node_name),
+				       &uint32_tmp, buffer);
+	} else {
+		switch_node_info_t *switch_nodeinfo = NULL;
+		safe_unpack32(&(tmp_ptr->job_id), buffer);
+		safe_unpack32(&(tmp_ptr->return_code), buffer);
+		safe_unpackstr_xmalloc(&(tmp_ptr->node_name),
+				       &uint32_tmp, buffer);
+		if (switch_g_alloc_node_info(&switch_nodeinfo)
+		    || switch_g_unpack_node_info(switch_nodeinfo, buffer,
+						 protocol_version)) {
+			switch_g_free_node_info(&switch_nodeinfo);
+			goto unpack_error;
+		}
+		switch_g_free_node_info(&switch_nodeinfo);
+	}
 
 	return SLURM_SUCCESS;
 
diff --git a/src/slurmd/slurmd/req.c b/src/slurmd/slurmd/req.c
index 22ac5566e53..36f4dbf1018 100644
--- a/src/slurmd/slurmd/req.c
+++ b/src/slurmd/slurmd/req.c
@@ -3256,10 +3256,6 @@ _epilog_complete(uint32_t jobid, int rc)
 	req.job_id      = jobid;
 	req.return_code = rc;
 	req.node_name   = conf->node_name;
-	if (switch_g_alloc_node_info(&req.switch_nodeinfo))
-		error("switch_g_alloc_node_info: %m");
-	if (switch_g_build_node_info(req.switch_nodeinfo))
-		error("switch_g_build_node_info: %m");
 
 	msg.msg_type    = MESSAGE_EPILOG_COMPLETE;
 	msg.data        = &req;
@@ -3273,7 +3269,6 @@ _epilog_complete(uint32_t jobid, int rc)
 		debug ("Job %u: sent epilog complete msg: rc = %d", jobid, rc);
 	}
 
-	switch_g_free_node_info(&req.switch_nodeinfo);
 	return ret;
 }
 
-- 
GitLab