|
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 n
Length: 2317 (0x90d) Types: TextFile Names: »ns_ro_error.c«
└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« └─⟦d3ac74d73⟧ └─⟦this⟧ »isode-5.0/dsap/net/ns_ro_error.c«
/* ns_ro_error.c - */ #ifndef lint static char *rcsid = "$Header: /f/osi/dsap/net/RCS/ns_ro_error.c,v 6.0 89/03/18 23:28:44 mrose Rel $"; #endif /* * $Header: /f/osi/dsap/net/RCS/ns_ro_error.c,v 6.0 89/03/18 23:28:44 mrose Rel $ * * * $Log: ns_ro_error.c,v $ * Revision 6.0 89/03/18 23:28:44 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 "rosap.h" #include "quipu/util.h" #include "quipu/connection.h" extern LLog * log_dsap; struct activity * task_alloc(); void ros_log (); /* * The DSA has produced an error for the task, encode the error, * generate an RO-ERROR.REQUEST and update the task block. */ net_send_ro_error(task) register struct activity * task; { PE err_pe; int err_type; struct RoSAPindication roi_s; struct RoSAPindication *roi = &roi_s; struct RoSAPpreject *rop = &(roi->roi_preject); struct DSError * err; DLOG(log_dsap, LLOG_TRACE, ("net_send_ro_error")); if(task == NULLACTIVITY) { LLOG(log_dsap, LLOG_FATAL, ("Task memerr 2")); return; } else err = task->act_error; /* Return the right sort of referral error */ if(task->act_conn->cn_dsa) { if(err->dse_type == DSE_REFERRAL) err->dse_type = DSE_DSAREFERRAL; } else { if(err->dse_type == DSE_DSAREFERRAL) err->dse_type = DSE_REFERRAL; } if(encode_OPError(&err_pe, &err_type, err) == OK) { /* PLOG (log_dsap, print_OPError, &err_pe, "Operation Error", 0); */ if(RoErrorRequest(task->act_conn->cn_ad, task->act_id, err_type, err_pe, ROS_NOPRIO, roi) == NOTOK) { ros_log(rop, "RO-ERROR.REQUEST"); } pe_free(err_pe); } else { LLOG(log_dsap, LLOG_EXCEPTIONS, ("Couldn't encode error.")); /* * None of the available rejects fit the problem, * the only plausible response is ROS_IP_RELEASE (a lie) * without then releasing. */ net_send_ro_ureject(task->act_conn->cn_ad, &(task->act_id), ROS_IP_RELEASE); } }