55 lines
1.3 KiB
C
55 lines
1.3 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:$";
|
||
|
#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;
|
||
|
}
|