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 );