PreviousNext

rpc_mgmt_inq_if_ids(3rpc)

Returns a vector of interface identifiers of interfaces a server offers

Used by client, server, or management applications.

Synopsis

#include <dce/rpc.h>

void rpc_mgmt_inq_if_ids(

rpc_binding_handle_t binding,

rpc_if_id_vector_t **if_id_vector,

unsigned32 *status);

Parameters

Input

binding
Specifies a binding handle. To receive interface identifiers from a remote application, specify a server binding handle for that application. To receive interface information about your own (local) application, specify NULL.

If the binding handle you supply refers to partially bound binding information and the binding information contains a nil object UUID, this routine returns the rpc_s_binding_incomplete status code. In this case, the DCE Host Daemon (dced) does not know which server instance to select from the local endpoint map because the RPC management interface is automatically registered (by the RPC runtime) for all RPC servers.

To avoid this situation, you can obtain a fully bound server binding handle by calling the rpc_ep_resolve_binding( ) routine.

Output

if_id_vector
Returns the address of an interface identifier vector.

status
Returns the status code from this routine, which indicates whether the routine completed successfully or, if not, why not. status can also return the value of parameter status from the application-defined authorization function (rpc_mgmt_authorization_fn_t). The prototype for such a function is defined in the authorization_fn parameter listed in the reference page for the rpc_mgmt_set_authorization_fn(3rpc) routine.

Description
An application calls the rpc_mgmt_inq_if_ids( ) routine to obtain a vector of interface identifiers listing the interfaces registered by a server with the RPC runtime.

If a server has not registered any interfaces with the runtime, this routine returns a rpc_s_no_interfaces status code and an if_id_vector parameter value of NULL.

The application calls the rpc_if_id_vector_free( ) routine to release the memory used by the vector.

By default, the RPC runtime allows all clients to remotely call this routine. To restrict remote calls of this routine, a server application supplies an authorization function using the rpc_mgmt_set_authorization_fn( ) routine.

Return Values
No value is returned.

Errors

The following describes a partial list of errors that might be returned. Refer to the OSF DCE Problem Determination Guide for complete descriptions of all error messages.

rpc_s_ok
Success.

rpc_s_binding_incomplete
Binding incomplete (no object ID and no endpoint).

rpc_s_comm_failure
Communications failure.

rpc_s_invalid_arg
Invalid argument.

rpc_s_invalid_binding
Invalid binding handle.

rpc_s_mgmt_op_disallowed
Management operation disallowed.

rpc_s_no_interfaces
No interfaces registered.

rpc_s_wrong_kind_of_binding
Wrong kind of binding for operation.

Related Information
Functions: rpc_ep_resolve_binding(3rpc)

rpc_if_id_vector_free(3rpc)

rpc_mgmt_set_authorization_fn(3rpc)

rpc_server_register_if(3rpc)