extern int select_p_select_jobinfo_unpack(select_jobinfo_t **jobinfo_pptr, Buf buffer, uint16_t protocol_version) { int rc; select_jobinfo_t *jobinfo = NULL; rc = _select_jobinfo_unpack(jobinfo_pptr, buffer, protocol_version); if (rc != SLURM_SUCCESS) return SLURM_ERROR; jobinfo = *jobinfo_pptr; rc = other_select_jobinfo_unpack(&jobinfo->other_jobinfo, buffer, protocol_version); if (rc != SLURM_SUCCESS) goto unpack_error; return SLURM_SUCCESS; unpack_error: select_p_select_jobinfo_free(jobinfo); *jobinfo_pptr = NULL; return SLURM_ERROR; }
extern int select_p_select_jobinfo_unpack(select_jobinfo_t **jobinfo_pptr, Buf buffer, uint16_t protocol_version) { int rc = SLURM_ERROR; select_jobinfo_t *jobinfo = xmalloc(sizeof(struct select_jobinfo)); *jobinfo_pptr = jobinfo; jobinfo->magic = JOBINFO_MAGIC; if (protocol_version >= SLURM_MIN_PROTOCOL_VERSION) { safe_unpack8(&jobinfo->confirmed, buffer); safe_unpack32(&jobinfo->reservation_id, buffer); safe_unpack64(&jobinfo->confirm_cookie, buffer); rc = other_select_jobinfo_unpack(&jobinfo->other_jobinfo, buffer, protocol_version); } else { error("select_p_select_jobinfo_unpack: protocol_version " "%hu not supported", protocol_version); } if (rc != SLURM_SUCCESS) goto unpack_error; return SLURM_SUCCESS; unpack_error: select_p_select_jobinfo_free(jobinfo); *jobinfo_pptr = NULL; return SLURM_ERROR; }