DN、またはRDNを変更するには、以下の関数を使用します。
ldap_rename( LDAP *ld, const char *dn, const char *newrdn, const char *newparent, int deleteoldrdn, LDAPControl **serverctrls, LDAPControl **clientctrls, int *msgidp )
非同期型のエントリ名変更をします。
ldap_rename_s( LDAP *ld, const char *dn, const char *newrdn, const char *newparent, int deleteoldrdn, LDAPControl **serverctrls, LDAPControl **clientctrls )
同期型のエントリ名変更をします。
各関数の仕様については、“リファレンスマニュアル(API編)”の“エントリ名の変更インタフェース”を参照してください。エントリのDN、またはRDNを変更する場合、クライアントは、パラメタとして以下のものを指定します。
現在のDN
名前を変更するエントリのDNを指定します。
新しいRDN
指定されたエントリの新しいRDNを指定します。
新しい上位エントリ
新しい名前のエントリを、どのエントリ配下に配置するかを指定します。
もとのRDNに対する処理
もとのRDNに該当する属性値を、エントリから削除するかどうかを指定します。
もとのRDNに該当する属性値を削除します。(0以外の値を指定します)
もとのRDNに該当する属性値を残します。(0を指定します)
名前の変更例です。
char *dn; char *newrdn; char *newparent; dn = "cn=Before,ou=Tokyo,o=fujitsu,dc=com"; newrdn = "After"; newparnt = "ou=Osaka,o=fujitsu,dc=com"; rtn = ldap_rename_s( ld, dn, new_rdn, newparent, 0, NULL, NULL ); if ( rtn != LDAP_SUCCESS ) { /* エラー発生時の処理をする */ return -1; }