PreviousNext

rpc_ns_binding_unexport(3rpc)

Removes the binding handles for an interface, or object UUIDs, from an entry in the name service database

Used by server applications.

Synopsis

#include <dce/rpc.h>

void rpc_ns_binding_unexport(

unsigned32 entry_name_syntax,

unsigned_char_t *entry_name,

rpc_if_handle_t if_handle,

uuid_vector_t *object_uuid_vec,

unsigned32 *status);

Parameters

Input

entry_name_syntax
An integer value that specifies the syntax of the entry_name parameter.

To use the syntax specified in the RPC_DEFAULT_ENTRY_SYNTAX environment variable, provide the value rpc_c_ns_syntax_ default.

entry_name
Specifies an entry name whose binding handles or object UUIDs are removed. This can be either the global or cell-relative name.

if_handle
Specifies an interface specification for the binding handles to be removed from the name service database. The value NULL indicates that no binding handles are removed (only object UUIDs are removed).

object_uuid_vec
Specifies a vector of object UUIDs to be removed from the name service database. The application constructs this vector. The value NULL indicates that no object UUIDs are removed (only binding handles are removed).

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_ns_binding_unexport( ) routine allows a server application to unexport (that is, remove) one of the following from an entry in the name service database:

· All the binding handles for an interface.

· One or more object UUIDs for a resource or resources.

· Both binding handles and object UUIDs.

The rpc_ns_binding_unexport( ) routine removes only those binding handles that match the interface UUID and the major and minor interface version numbers found in the if_handle parameter. To remove multiple versions of an interface, use rpc_ns_mgmt_binding_unexport( ).

A server application can remove an interface and objects in a single call to this routine, or it can remove them separately.

If rpc_ns_binding_unexport( ) does not find any binding handles for the specified interface, it returns an rpc_s_interface_not_found status code and does not remove the object UUIDs, if any are specified.

If one or more binding handles for the specified interface are found and removed without error, rpc_ns_binding_unexport( ) removes the specified object UUIDs, if any.

If any of the specified object UUIDs are not found, rpc_ns_binding_unexport( ) returns the status code rpc_s_not_all_objs_unexported.

A server application, in addition to calling this routine, also calls rpc_ep_unregister( ) to unregister any endpoints that the server previously registered with the local endpoint map.

Use this routine with caution, only when you expect a server to be unavailable for an extended time; for example, when it is permanently removed from service.

Additionally, keep in mind that name service databases are designed to be relatively stable. In replicated name service databases, frequent use of rpc_ns_binding_export( ) and rpc_ns_binding_unexport( ) causes the name service to remove and replace the same entry repeatedly, and can cause performance problems.

Permissions Required
You need both read permission and write permission to the CDS object entry (the target name service entry).

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_class_version_mismatch
RPC class version mismatch.

rpc_s_entry_not_found
Name service entry not found.

rpc_s_incomplete_name
Incomplete name.

rpc_s_interface_not_found
Interface not found.

rpc_s_invalid_name_syntax
Invalid name syntax.

rpc_s_invalid_vers_option
Invalid version option.

rpc_s_name_service_unavailable
Name service unavailable.

rpc_s_no_ns_permission
No permission for name service operation.

rpc_s_not_all_objs_unexported
Not all objects unexported.

rpc_s_nothing_to_unexport
Nothing to unexport.

rpc_s_not_rpc_entry
Not an RPC entry.

rpc_s_unsupported_name_syntax
Unsupported name syntax.

Related Information
Functions: rpc_ep_unregister(3rpc)

rpc_ns_binding_export(3rpc)

rpc_ns_mgmt_binding_unexport(3rpc)