NWDSModifyRDN

Changes the naming attribute of an eDirectory object or its alias in the eDirectory tree.

Local Servers:blocking
Remote Servers:blocking
NetWare Server:4.x, 5.x, 6.x
Platform:NLM, Windows NT, Windows 95, Windows 98, Windows 2000, Windows XP
Library:Cross-Platform NDS (NET*.*)
Service:NDS

Syntax

C

  #include <nwnet.h> 
  or 
  #include <nwdsdsa.h> 
   
  N_EXTERN_LIBRARY (NWDSCCODE)  NWDSModifyRDN  ( 
     NWDSContextHandle   context,  
     pnstr8              objectName,  
     pnstr8              newDN,  
     nbool8              deleteOldRDN); 
  

Pascal

  uses netwin32 
   
  Function NWDSModifyRDN 
    (context : NWDSContextHandle; 
     objectName : pnstr8; 
     newDN : pnstr8; 
     deleteOldRDN : nbool8 
  ) : NWDSCCODE;
  

Parameters

context

(IN) Specifies the NDS context for the request.

objectName

(IN) Points to the object’s current name.

newDN

(IN) Points to the object’s new name.

deleteOldRDN

(IN) Specifies whether to discard the old RDN. If FALSE, the old RDN is retained as an additional attribute value. If TRUE, the old RDN is deleted.

Return Values

These are common return values.

0x0000 0000

SUCCESSFUL

0x8996

SERVER_OUT_OF_MEMORY

0x89E2

TOO_FEW_FRAGMENTS

0x89E3

TOO_MANY_FRAGMENTS

0x89E4

PROTOCOL_VIOLATION

0x89E5

SIZE_LIMIT_EXCEEDED

0x89FD

UNKNOWN_REQUEST

0x89FD

INVALID_PACKET_LENGTH

0x89FE

BAD_PACKET

0x89FF

Failure not related to eDirectory

nonzero value

Nonzero values indicate errors. See NDS Return Values (–001 to –799).

Remarks

NWDSModifyRDN does not move an object to a new location in the eDirectory tree.

NWDSModifyRDN changes only the least significant (left-most) name in a leaf object’s distinguished name. It does not change an object’s more significant names, since changing those names changes the location of the object in the eDirectory tree. For example, if the object’s name is

    CN=Hector.OU=Graphics.O=WimpleMakers
  

you can change the common name "CN=Hector" to "CN=Duke" since it is a leaf object. However, you cannot change the "OU=Graphics" to "OU=Marketing" since that would change the location of the object (Hector) within the eDirectory tree. (To move an object, call NWDSMoveObject or NWDSModifyDN.)

You cannot change the name of an object that is not a leaf node. For example, in the above case you cannot change the name of

     OU=Graphics.O=WimpleMakers
  

to

     OU=Presentation Graphics.O=WimpleMakers
  

because Graphics is not a leaf node; it contains the subordinate object named Hector.

The objectName parameter identifies the object whose name is to be modified. Aliases in the name are not dereferenced.

The newDN parameter specifies the new name of the object. If an attribute value in the new RDN does not already exist in the object, it is added. If it cannot be added, an error is returned.

If deleteOldRDN is TRUE, all old attribute values in the RDN are deleted. If FALSE, old values remain in the object (but not as a part of the DN). If the naming attribute is single valued, this flag must be TRUE.

If NWDSModifyRDN removes the last attribute value of an attribute while identifying a new attribute for the DN, the old attribute is deleted.

Aliases are never dereferenced by NWDSModifyRDN. The context flag associated with DCV_DEREF_ALIASES is not relevant to NWDSModifyRDN and is ignored.

NCP Calls

See Also

NWDSModifyDN, NWDSModifyObject, NWDSGetContext, NWDSSetContext