| ## 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) ##