/* acsapreleas3.c - ACPM: interpret release */
static char *rcsid
= "$Header: /f/osi/acsap/RCS/acsapreleas3.c,v 7.2 91/02/22 09:14:15 mrose Interim $";
* $Header: /f/osi/acsap/RCS/acsapreleas3.c,v 7.2 91/02/22 09:14:15 mrose Interim $
* $Log: acsapreleas3.c,v $
* Revision 7.2 91/02/22 09:14:15 mrose
* Revision 7.1 90/07/01 21:02:06 mrose
* Revision 7.0 89/11/23 21: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
/* \f handle P-RELEASE.INDICATION */
int AcFINISHser (sd
, pf
, aci
)
register struct PSAPfinish
*pf
;
register struct AcSAPindication
*aci
;
register struct assocblk
*acb
;
register struct AcSAPfinish
*acf
;
struct type_ACS_ACSE__apdu
*pdu
;
register struct type_ACS_RLRQ__apdu
*rlrq
;
bzero ((char *) aci
, sizeof *aci
);
aci
-> aci_type
= ACI_FINISH
;
acf
= &aci
-> aci_finish
;
if (pf
-> pf_ninfo
< 1) {
result
= acsaplose (aci
, ACS_PROTOCOL
, NULLCP
,
"no user-data on P-RELEASE");
result
= decode_ACS_ACSE__apdu (pe
= pf
-> pf_info
[0], 1, NULLIP
, NULLVP
,
if (result
== OK
&& (acsap_log
-> ll_events
& LLOG_PDUS
))
pvpdu (acsap_log
, print_ACS_ACSE__apdu_P
, pe
, "ACSE-apdu", 1);
pe
= pf
-> pf_info
[0] = NULLPE
;
result
= acsaplose (aci
, ACS_PROTOCOL
, NULLCP
, "%s", PY_pepy
);
if (pdu
-> offset
!= type_ACS_ACSE__apdu_rlrq
) {
result
= acsaplose (aci
, ACS_PROTOCOL
, NULLCP
,
"unexpected PDU %d on P-RELEASE", pdu
-> offset
);
if (rlrq
-> optionals
& opt_ACS_RLRQ__apdu_reason
)
acf
-> acf_reason
= rlrq
-> reason
;
acf
-> acf_reason
= int_ACS_reason_normal
;
result
= apdu2info (acb
, aci
, rlrq
-> user__information
, acf
-> acf_info
,
acb
-> acb_flags
|= ACB_FINN
;
free_ACS_ACSE__apdu (pdu
);
(void) sigiomask (smask
);