|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T r
Length: 2430 (0x97e) Types: TextFile Names: »rydserror.c«
└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« └─⟦d3ac74d73⟧ └─⟦this⟧ »isode-5.0/rosy/rydserror.c«
/* rydserror.c - ROSY: return error to invocation */ #ifndef lint static char *rcsid = "$Header: /f/osi/rosy/RCS/rydserror.c,v 6.0 89/03/18 23:42:49 mrose Rel $"; #endif /* * $Header: /f/osi/rosy/RCS/rydserror.c,v 6.0 89/03/18 23:42:49 mrose Rel $ * * * $Log: rydserror.c,v $ * Revision 6.0 89/03/18 23:42:49 mrose * Release 5.0 * */ /* * NOTICE * * 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 * this agreement. * */ /* LINTLIBRARY */ #include <stdio.h> #include "rosy.h" #define missingP(p) \ { \ if (p == NULL) \ return rosaplose (roi, ROS_PARAMETER, NULLCP, \ "mandatory parameter \"%s\" missing", "p"); \ } /* \f ERROR */ int RyDsError (sd, id, err, out, priority, roi) int sd; int id, err, priority; caddr_t out; struct RoSAPindication *roi; { int result; PE pe; register struct opsblk *opb; register struct RyError **ryep, *rye; register struct RyOperation *ryo; missingP (roi); if ((opb = findopblk (sd, id, OPB_RESPONDER)) == NULLOPB) return rosaplose (roi, ROS_PARAMETER, NULLCP, "invocation %d not in progress on association %d", id, sd); ryo = opb -> opb_ryo; if (!(ryep = ryo -> ryo_errors)) return rosaplose (roi, ROS_PARAMETER, NULLCP, "error not permitted with operation %s/%d", ryo -> ryo_name, ryo -> ryo_op); for (; *ryep; ryep++) if ((*ryep) -> rye_err == err) break; if (!(rye = *ryep)) return rosaplose (roi, ROS_PARAMETER, NULLCP, "error %s/%d not permitted with operation %s/%d", rye -> rye_name, rye -> rye_err, ryo -> ryo_name, ryo -> ryo_op); if (rye -> rye_param_encode) { #ifdef notdef missingP (out); #endif 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", opb -> opb_id, rye -> rye_name, rye -> rye_err); } else { if (out) return rosaplose (roi, ROS_PARAMETER, NULLCP, "error parameter not permitted with operation %s/%d", rye -> rye_name, rye -> rye_err); pe = NULLPE; } if ((result = RoErrorRequest (sd, id, err, pe, priority, roi)) != NOTOK) freeopblk (opb); if (pe) pe_free (pe); return result; }