/* rydserror.c - ROSY: return error to invocation */
static char *rcsid
= "$Header: /f/osi/rosy/RCS/rydserror.c,v 7.2 91/02/22 09:41:57 mrose Interim $";
* $Header: /f/osi/rosy/RCS/rydserror.c,v 7.2 91/02/22 09:41:57 mrose Interim $
* Revision 7.2 91/02/22 09:41:57 mrose
* Revision 7.1 90/07/01 21:06:31 mrose
* Revision 7.0 89/11/23 22:21:56 mrose
* Acquisition, use, and distribution of this module and related
* materials are subject to the restrictions of a license agreement.
* Consult the Preface in the User's Manual for the full terms of
return rosaplose (roi, ROS_PARAMETER, NULLCP, \
"mandatory parameter \"%s\" missing", "p"); \
int RyDsError (sd
, id
, err
, out
, priority
, roi
)
struct RoSAPindication
*roi
;
register struct opsblk
*opb
;
register struct RyError
**ryep
,
register struct RyOperation
*ryo
;
if ((opb
= findopblk (sd
, id
, OPB_RESPONDER
)) == NULLOPB
)
return rosaplose (roi
, ROS_PARAMETER
, NULLCP
,
"invocation %d not in progress on association %d",
if (!(ryep
= ryo
-> ryo_errors
))
return rosaplose (roi
, ROS_PARAMETER
, NULLCP
,
"error not permitted with operation %s/%d",
ryo
-> ryo_name
, ryo
-> ryo_op
);
if ((*ryep
) -> rye_err
== err
)
return rosaplose (roi
, ROS_PARAMETER
, NULLCP
,
"error %d not permitted with operation %s/%d",
err
, ryo
-> ryo_name
, ryo
-> ryo_op
);
if (rye
-> rye_param_mod
) {
if (rye
-> rye_param_encode
) {
if (enc_f (rye
-> rye_param_index
, rye
-> rye_param_mod
, &pe
, 1, NULL
,
if ((*rye
-> rye_param_encode
) (&pe
, 1, NULL
, NULLCP
, out
) == NOTOK
)
return rosaplose (roi
, ROS_CONGEST
, NULLCP
,
"error encoding parameter for invocation %d having %s/%d [%s]",
opb
-> opb_id
, rye
-> rye_name
, rye
-> rye_err
,
return rosaplose (roi
, ROS_PARAMETER
, NULLCP
,
"error parameter not permitted with operation %s/%d",
rye
-> rye_name
, rye
-> rye_err
);
if ((result
= RoErrorRequest (sd
, id
, err
, pe
, priority
, roi
)) != NOTOK
)