int decode_DIS_TrackJob(int sock, struct batch_request *preq) { int rc; rc = disrfst(sock, PBS_MAXSVRJOBID+1, preq->rq_ind.rq_track.rq_jid); if (rc) return rc; preq->rq_ind.rq_track.rq_hopcount = disrui(sock, &rc); if (rc) return rc; rc = disrfst(sock, PBS_MAXDEST+1, preq->rq_ind.rq_track.rq_location); if (rc) return rc; preq->rq_ind.rq_track.rq_state[0] = disruc(sock, &rc); return rc; }
/** * @brief * Decode PBS batch request to authenticate based on external (non-resv-port) mechanisms. * The batch request contains type and the auth data. * * @param [in] sock socket connection * @param [in] preq PBS bath request * @return in * @retval 0 on success * @retval > 0 on failure */ int decode_DIS_AuthExternal(int sock, struct batch_request *preq) { int rc; int cred_len = 0; preq->rq_ind.rq_authen_external.rq_auth_type = disruc(sock, &rc); if (rc != DIS_SUCCESS) return (rc); cred_len = disrsi(sock, &rc); if (rc != DIS_SUCCESS) return (rc); switch (preq->rq_ind.rq_authen_external.rq_auth_type) { case AUTH_MUNGE: return (disrfst(sock, cred_len, preq->rq_ind.rq_authen_external.rq_authen_un.rq_munge.rq_authkey) != 0); } return DIS_EOF; }