OSI/AS Programming Manual
Example 1: Session Layer
Sample Programs
E–30 056783 Tandem Computers Incorporated
release_result = ZAPS_VAL_RLS_ACCEPT;
printf( "APPL2: release response\n" );
status = APS_ASSOC_RELEASERSP_( cepi_2
, release_result
, (int *) &user_data_2
);
if ( status != ZAPS_VAL_STATUS_OK )
display_aps_status( cepi_2, error_releasersp_proc );
/* */
/* APPLICATION 1 */
/* Wait for release confirm */
/* */
wait_for_event( cepi_1, ZAPS_VAL_EVT_RELEASE_CNF );
/* */
/* Get parameters of the release confirm. */
/* */
error =
APS_ASSOC_GETPARAM_( cepi_1
, /* conid */
, /* local-appl */
, /* remote-appl */
, /* connect-result */
, /* session-rqmnts */
, &release_result
, /* abort-reason */
);
if ( error != ZAPS_ERR_OK ||
release_result != ZAPS_VAL_RLS_ACCEPT )
display_aps_error( error_assoc_getparam_proc );
/* */
/* Get release confirm user data. */
/* */
retrieve_user_data( cepi_1 );
/* */
/* APPLICATION 1 and APPLICATION 2 */
/* Delete the API context information. */
/* */
printf( "APPL1: discard\n" );
status = APS_DISCARD_( cepi_1 );
if ( status != ZAPS_VAL_STATUS_OK )
display_aps_status( cepi_1, error_discard_proc );
printf( "APPL2: discard\n" );
status = APS_DISCARD_( cepi_2 );
if ( status != ZAPS_VAL_STATUS_OK )
display_aps_status( cepi_2, error_discard_proc );
printf( "sample 1 program complete\n" );
} /* proc sample_1_osias (main) */