Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
/**
 * @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;
}