OSF DCE Application Development Guide--Introduction and Style Guide
A Sample Application
/* And now find out if it’s a valid member of our sample_servers */
/* group... */
fprintf(stdout, "sample_client: Calling is_valid_principal()...0);
if (is_valid_principal(server_princ_name, (unsigned_char_t *)SGROUP, &status))
{
fprintf(stdout,
"sample_client: Calling rpc_binding_set_auth_info()...0);
rpc_binding_set_auth_info(binding_h,
server_princ_name,
rpc_c_protect_level_pkt_integ,
rpc_c_authn_dce_secret,
NULL,
rpc_c_authz_dce,
&status);
}
if (status != rpc_s_ok)
{
print_error("rpc_binding_set_auth_info()", status);
exit(1);
}
/********************************************************************/
/* Everything’s okay, so do some remote stuff. There are currently */
/* two possibilities: Either stop the server via the remote mgmt */
/* interface, or actually bind to an object and call a couple of */
/* remote operations. */
/* First alternative: Kill the server via the mgmt interface... */
if (kill_server)
{
fprintf(stdout,
"sample_client: Kill server option enacted...0);
fprintf(stdout,
"sample_client: Calling rpc_ep_resolve_binding()...0);
rpc_ep_resolve_binding(binding_h,
sample_v1_0_c_ifspec,
&status);
if (status != rpc_s_ok)
{
print_error("rpc_ep_resolve_binding()", status);
exit(1);
}
fprintf(stdout,
"sample_client: Calling rpc_mgmt_stop_server_listening()...0);
rpc_mgmt_stop_server_listening(binding_h, &status);
124246 Tandem Computers Incorporated A− 83