rpc_ep_unregister(3) — Subroutines
NAME
rpc_ep_unregister - Removes server address information from the local endpoint map
Used by server applications.
SYNOPSIS
#include <dce/rpc.h>
void rpc_ep_unregister(
rpc_if_handle_t if_handle ,
rpc_binding_vector_t ∗binding_vec ,
uuid_vector_t ∗object_uuid_vec ,
unsigned32 ∗status );
PARAMETERS
Input
if_handleSpecifies an interface specification to remove (that is, unregister) from the local endpoint map.
binding_vecSpecifies a vector of binding handles to remove.
object_uuid_vecSpecifies a vector of object UUIDs to remove. The server application constructs this vector. This routine removes all local endpoint map elements that match the specified if_handle argument, binding_vec argument, and object UUIDs. This is an optional argument. The value NULL indicates there are no object UUIDs to remove.
Output
statusReturns the status code from this routine. This status code indicates whether the routine completed successfully or, if not, why not. The possible status codes and their meanings are as follows:
rpc_s_okSuccess.
ept_s_cant_accessError reading endpoint database.
ept_s_cant_createError creating endpoint database.
ept_s_cant_perform_opCannot perform requested operation.
ept_s_database_invalidEndpoint map database invalid.
ept_s_invalid_entryInvalid database entry.
ept_s_update_failedUpdate failed.
rpc_s_invalid_bindingInvalid binding handle.
rpc_s_invalid_if_handleInvalid interface handle.
rpc_s_no_bindingsNo bindings.
rpc_s_wrong_kind_of_binding
Wrong kind of binding for operation.
DESCRIPTION
The rpc_ep_unregister routine removes elements from the local host’s endpoint map. A server application calls this routine only if the server has registered endpoints previously and the server wishes to remove that address information from the local endpoint map.
A server program is able to remove its own local endpoint map elements (server address information) based on either of the following:
•Interface specification
•The interface specification and the object UUIDs of resources offered
The server calls the rpc_server_inq_bindings routine to obtain the required binding_vec argument. To remove selected endpoints, the server can remove individual elements from argument binding_vec before calling this routine. See the explanation of a binding vector in the rpc_intro(3) reference page for more information about removing a single element from a vector of binding handles.
This routine creates a cross-product from the if_handle, binding_vec and object_uuid_vec arguments and removes each element in the cross-product from the local endpoint map. The description of the rpc_ep_register routine summarizes the contents of a cross-product in the local endpoint map.
Servers must always call routine rpc_ep_unregister to remove their endpoints from the local endpoint map before they exit. Otherwise, stale information will be in the local endpoint map. However, if a server prematurely removes endpoints (the server is not in the process of exiting), clients that do not already have fully bound binding handles to the server will not be able to send remote procedure calls to the server.
RETURN VALUES
None.
RELATED INFORMATION
Functions: rpc_ep_register(3), rpc_ep_register_no_replace(3), rpc_mgmt_ep_unregister(3), rpc_ns_binding_unexport(3), rpc_server_inq_bindings(3)