PreviousNext

rpc_ns_profile_elt_add(3rpc)

Adds an element to a profile; if necessary, creates the entry

Used by client, server, or management applications.

Synopsis

#include <dce/rpc.h>

void rpc_ns_profile_elt_add(

unsigned32 profile_name_syntax,

unsigned_char_t *profile_name,

rpc_if_id_t *if_id,

unsigned32 member_name_syntax,

unsigned_char_t *member_name,

unsigned32 priority,

unsigned_char_t *annotation,

unsigned32 *status);

Parameters

Input

profile_name_syntax
An integer value that specifies the syntax of the profile_name parameter.

To use the syntax specified in the RPC_DEFAULT_ENTRY_SYNTAX environment variable, provide rpc_c_ns_syntax_default.

profile_name
Specifies the RPC profile that receives a new element. This can be either the global or cell-relative name.

if_id
Specifies the interface identifier of the new profile element. To add or replace the default profile element, specify NULL.

member_name_syntax
An integer value that specifies the syntax of member_name.

To use the syntax specified in the RPC_DEFAULT_ENTRY_SYNTAX environment variable, provide rpc_c_ns_syntax_default.

member_name
Specifies the entry in the name service database to include in the new profile element. This can be either the global or cell-relative name.

priority
An integer value (0 to 7) that specifies the relative priority for using the new profile element during the import and lookup operations. A value of 0 (zero) is the highest priority. A value of 7 is the lowest priority. Two or more elements can have the same priority.

When adding the default profile member, use a value of 0 (zero).

annotation
Specifies an annotation string that is stored as part of the new profile element. The string can be up to 17 characters long. Specify NULL or the string 0 if there is no annotation string.

The string is used by applications for informational purposes only. For example, an application can use this string to store the interface name string (specified in the IDL file).

DCE RPC does not use this string during lookup or import operations, or for enumerating profile elements.

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_profile_elt_add( ) routine adds an element to the profile attribute of the entry in the name service database specified by the profile_name parameter.

If the profile_name entry does not exist, this routine creates the entry with a profile attribute and adds the profile element specified by the if_id, member_name, priority, and annotation parameters. In this case, the application must have permission to create the entry. Otherwise, a management application with the necessary permissions creates the entry by calling rpc_ns_mgmt_entry_create( ) before the application is run.

If an element with the specified member name and interface identifier are already in the profile, this routine updates the element's priority and annotation string using the values provided in the priority and annotation parameters.

An application can add the entry in the member_name parameter to a profile before it creates the entry itself.

Permissions Required
You need both read permission and write permission to the CDS object entry (the target profile entry). If the entry does not exist, you also need insert permission to the parent directory.

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_incomplete_name
Incomplete name.

rpc_s_invalid_name_syntax
Invalid name syntax.

rpc_s_invalid_priority
Invalid profile element priority.

rpc_s_name_service_unavailable
Name service unavailable.

rpc_s_no_ns_permission
No permission for name service operation.

rpc_s_unsupported_name_syntax
Unsupported name syntax.

Related Information
Functions: rpc_if_inq_id(3rpc)

rpc_ns_mgmt_entry_create(3rpc)

rpc_ns_profile_elt_remove(3rpc)