OSI/AS Programming Manual

Example 2: Presentation Layer and ACSE
Sample Programs
E–90 056783 Tandem Computers Incorporated
user_data.value[ 5] = 0x80; /* single-asn1-type */
user_data.value[ 6] = 12; /* length of user-info */
user_data.value[ 7] = 0x04; /* octet string */
user_data.value[ 8] = 10; /* length of octet string */
memcpy( &user_data.value[ 9 ]
, "releasereq" /* data */
, 10
);
user_data.element.zlen = 19;
/* */
/* Issue ACSE release response. */
/* */
acse_release_reason = ZAPS_VAL_RLS_RSN_NORMAL;
printf( "APPL2: release request <-\n" );
tag = error_releasereq_proc;
status = APS_ASSOC_RELEASEREQ_( cepi
, (int *) &user_data
, tag
, acse_release_reason
);
wait_for_aps_completion( error_releasereq_proc );
if ( status != ZAPS_VAL_STATUS_OK )
display_aps_status( error_releasereq_proc );
/* */
/* Wait for ACSE release confirm. */
/* */
wait_for_event( ZAPS_VAL_EVT_RELEASE_CNF );
/* */
/* Get the ACSE release reason and release result. */
/* */
error =
APS_ASSOC_GETPARAM_( cepi
, /* conid */
, /* local-appl */
, /* remote-appl */
, /* connect-result */
, /* session-rqmnts */
, &release_result
, /* abort-reason */
, /* mode */
, /* pres-context-list */
, /* pres-context-result-list */
, /* pres-default-context-name */
, /* pres-default-context-result */
, /* acse-appl-context-name */
, /* acse-local-ae-title */
, /* acse-remote-ae-title */
, /* acse-local-invocation-ids */
, /* acse-remote-invocation-ids */
, /* acse-result-source */
, /* acse-diagnostic */
, &acse_release_reason
, /* acse-abort-source */