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 */










