fis-gtm/sr_unix_cm/omi_buff_rsp.c

55 lines
1.4 KiB
C

/****************************************************************
* *
* Copyright 2001, 2004 Sanchez Computer Associates, Inc. *
* *
* This source code contains the intellectual property *
* of its copyright holder(s), and is made available *
* under a license. If you do not know the terms of *
* the license, please stop and do not read further. *
* *
****************************************************************/
/*
* omi_buff_rsp.c ---
*
* Buffer a transaction response.
*
*/
#ifndef lint
static char rcsid[] = "$Header: /cvsroot/fis-gtm/gtm/sr_unix_cm/omi_buff_rsp.c,v 1.6 2013/10/23 03:49:31 tuskentower Exp $";
#endif
#include "mdef.h"
#include "omi.h"
void omi_buff_rsp(omi_req_hdr *rhptr, omi_err_hdr *ehptr, omi_status status, char *bptr, int len)
{
char *tptr;
tptr = bptr;
/* Fill in the header */
OMI_VI_WRIT(OMI_SI_SIZ + OMI_RH_SIZ + len, tptr);
OMI_SI_WRIT(OMI_RH_SIZ, tptr);
/* Set the error flags to the specified values */
if (ehptr)
{
OMI_LI_WRIT(ehptr->class, tptr);
OMI_SI_WRIT(ehptr->type, tptr);
OMI_LI_WRIT(ehptr->modifier, tptr);
} else
{ /* Otherwise set all to 0 (class, type, and modifier) */
OMI_LI_WRIT(0, tptr);
OMI_SI_WRIT(0, tptr);
OMI_LI_WRIT(0, tptr);
}
/* Server status */
OMI_LI_WRIT(status, tptr);
/* Sequence number */
OMI_LI_WRIT(rhptr->seq.value, tptr);
/* Reference ID */
OMI_LI_WRIT(rhptr->ref.value, tptr);
return;
}