PreviousNext

rpc_ep_unregister(3rpc)

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_handle
Specifies an interface specification to remove (that is, unregister) from the local endpoint map.

binding_vec
Specifies a vector of binding handles to remove.

object_uuid_vec
Specifies 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 parameter, binding_vec parameter, and object UUIDs.

This is an optional parameter. The value NULL indicates there are no object UUIDs to remove.

Output

status
Returns the status code from this routine. This status code indicates whether the routine completed successfully or, if not, why not.

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:

· The 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 parameter. To remove selected endpoints, the server can remove individual elements from binding_vec before calling this routine. (See the explanation of a binding vector in rpc_intro(3rpc) 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 parameters and removes each element in the cross product from the local endpoint map. The rpc_ep_register( ) routine's reference page summarizes the contents of a cross product in the local endpoint map.

Servers must always call the rpc_ep_unregister( ) routine 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
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.

ept_s_cant_access
Error reading endpoint database.

ept_s_cant_create
Error creating endpoint database.

ept_s_cant_perform_op
Cannot perform requested operation.

ept_s_database_invalid
Endpoint map database invalid.

ept_s_invalid_entry
Invalid database entry.

ept_s_update_failed
Update failed.

rpc_s_invalid_binding
Invalid binding handle.

rpc_s_no_bindings
No bindings.

rpc_s_wrong_kind_of_binding
Wrong kind of binding for operation.

Related Information
Functions: rpc_ep_register(3rpc)

rpc_ep_register_no_replace(3rpc)

rpc_mgmt_ep_unregister(3rpc)

rpc_ns_binding_unexport(3rpc)

rpc_server_inq_bindings(3rpc)