OSI/AS Programming Manual
Example 2: Presentation Layer and ACSE
Sample Programs
E–60 056783 Tandem Computers Incorporated
 , /* 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 */
 );
 if ( error != ZAPS_ERR_OK )
 display_aps_error( error_assoc_getparam_proc );
 /* */
 /* Get ACSE release indication user data. */
 /* */
 retrieve_user_data();
 /* */
 /* Set up ACSE release response user data. */
 /* Normally, this would be generated by an */
 /* ASN.1 compiler. */
 /* */
 user_data.header.znum_elements = 1;
 user_data.element.ztype = ZAPS_VAL_DATA_TYPE_VALUE;
 user_data.element.zpcid = 1; /* ignored by ACSE */
 user_data.value[ 0 ] = 0x28; /* EXTERNAL */
 user_data.value[ 1 ] = 17; /* length */
 user_data.value[ 2 ] = 0x02; /* INTEGER */
 user_data.value[ 3 ] = 1; /* length of INTEGER */
 user_data.value[ 4 ] = 1; /* pcid */
 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 ]
 , "releasersp" /* data */
 , 10 );
 user_data.element.zlen = 19;
 /* */
 /* Issue ACSE release response. */
 /* */
 release_result = ZAPS_VAL_RLS_ACCEPT;
 acse_release_reason = ZAPS_VAL_RLS_NOVALUE;
 printf( "APPL1: release response ->\n" );
 status = APS_ASSOC_RELEASERSP_( cepi
 , release_result
 , (int *) &user_data
 , /* tag */
 , acse_release_reason
 );
 if ( status != ZAPS_VAL_STATUS_OK )
 display_aps_status( error_releasersp_proc );










