diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c index 968a32b333238c8dc3b759f38c588e233163f0c2..71d54da02ffc58a9eb6eb33b0fbd7a5e1aa720a5 100644 --- a/src/common/slurm_protocol_defs.c +++ b/src/common/slurm_protocol_defs.c @@ -346,6 +346,8 @@ slurm_free_node_registration_status_msg xfree(msg->node_name); if (msg->job_id) xfree(msg->job_id); + if (msg->step_id) + xfree(msg->step_id); xfree(msg); } } diff --git a/src/common/slurm_protocol_defs.h b/src/common/slurm_protocol_defs.h index 303aa60ef800cf7145994332299af7c9213e1e7a..6638901c188c76d454f82270b9cdb82da553305f 100644 --- a/src/common/slurm_protocol_defs.h +++ b/src/common/slurm_protocol_defs.h @@ -536,6 +536,7 @@ typedef struct slurm_node_registration_status_msg { uint32_t temporary_disk_space; uint32_t job_count; /* number of associate job_id's */ uint32_t *job_id; /* IDs of running job (if any) */ + uint16_t *step_id; /* IDs of running job steps (if any) */ } slurm_node_registration_status_msg_t; typedef struct slurm_ctl_conf slurm_ctl_conf_info_msg_t; diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c index e234a99206f8158abd6d2db752728a0cb3b595fd..7fef8de21ae668d3039435ec0bb981a1b9926457 100644 --- a/src/common/slurm_protocol_pack.c +++ b/src/common/slurm_protocol_pack.c @@ -439,6 +439,9 @@ void pack_node_registration_status_msg ( slurm_node_registration_status_msg_t * for (i = 0; i < msg->job_count ; i++) { pack32 ( msg -> job_id[i] , ( void ** ) buffer , length ) ; } + for (i = 0; i < msg->job_count ; i++) { + pack16 ( msg -> step_id[i] , ( void ** ) buffer , length ) ; + } } int unpack_node_registration_status_msg ( slurm_node_registration_status_msg_t ** msg , void ** buffer , uint32_t * length ) @@ -468,6 +471,10 @@ int unpack_node_registration_status_msg ( slurm_node_registration_status_msg_t * for (i = 0; i < node_reg_ptr->job_count ; i++) { unpack32 ( & node_reg_ptr->job_id[i] , ( void ** ) buffer , length ) ; } + node_reg_ptr -> step_id = xmalloc (sizeof (uint16_t) * node_reg_ptr->job_count); + for (i = 0; i < node_reg_ptr->job_count ; i++) { + unpack16 ( & node_reg_ptr->step_id[i] , ( void ** ) buffer , length ) ; + } *msg = node_reg_ptr ; return 0 ; }