PreviousNext

rpc_ns_mgmt_set_attribute(3rpc)

Adds an attribute to an RPC server entry in the name service database.

Used mainly by server applications; can also be used by management applications.

Synopsis

#include <dce/rpc.h>
#include <dce/nsattrid.h>

void rpc_ns_mgmt_set_attribute(

unsigned32 entry_name_syntax,

unsigned_char_t *entry_name,

uuid_t *attr_type,

void *attr_value,

error_status_t *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 rpc_c_ns_syntax_default.

entry_name
Specifies the name of the RPC server entry in the name service database with which the attribute will be associated. The name can be either the global or cell-relative name. If you are using this routine to add a code sets attribute to an RPC server entry in the name service database, then this parameter specifies the name of the server entry with which the code sets attribute will be associated.

attr_type
A UUID that specifies the attribute type. For DCE 1.1, this value must be rpc_c_attr_codesets.

attr_val
An opaque data structure that specifies the attribute value to be stored in the name service database. If you are using this routine to add a code sets attribute to an RPC server entry, you must cast the representation of the code set data from the data type rpc_codeset_mgmt_p_t to the data type void*.

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_mgmt_set_attribute( ) routine belongs to a set of DCE RPC routines for use by client and server applications that are transferring international character data in a heterogeneous character set and code sets environment.

The rpc_ns_mgmt_set_attribute( ) routine is designed to be a generic routine for adding an attribute to an RPC server entry in the name service database. The routine takes an attribute type and a pointer to the value, and stores the attribute value in the name service database.

For DCE 1.1, you use rpc_ns_mgmt_set_attribute( ) in your application server initialization routine to add a code sets attribute to the server's entry in the Cell Directory Service database (which the initialization routine has created with the rpc_ns_binding_export( ) routine). Because CDS stores integer values in little-endian format, the rpc_ns_mgmt_set_attribute( ) routine also encodes the code sets attribute value into an endian-safe format before storing it in the name service database.

A management application can call rpc_ns_mgmt_set_attribute( ) to add an attribute to an RPC server entry in the name service database on behalf of an application that does not itself have the necessary name service permissions to add one.

Permissions Required
You need both read permission and write permission to the target RPC server entry (which is a CDS object). 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_invalid_name_syntax
The name syntax specified in the call is not valid.

rpc_s_mgmt_bad_type
The attribute type specified in the call does not match that of the attribute to be added to the name service database.

rpc_s_no_memory
The routine was unable to allocate memory to encode the value.

rpc_s_name_service_unavailable
The routine was unable to communicate with the name service.

rpc_s_no_ns_permission
The routine's caller does not have the proper permission for an NSI operation.

Related Information
Functions: rpc_ns_mgmt_read_codesets(3rpc)

rpc_ns_mgmt_remove_attribute(3rpc)

rpc_rgy_get_codesets(3rpc)