エントリを追加するには、以下の関数を使用します。
ldap_add( LDAP *ld, const char *dn, LDAPMod **attrs )
非同期型のエントリ追加をします。
ldap_add_s( LDAP *ld, const char *dn, LDAPMod **attrs )
同期型のエントリ追加をします。
ディレクトリツリー上にエントリを追加する場合、パラメタとして以下のものを指定します。
エントリのDN
作成するDNを指定します。
エントリの属性の集合
作成するエントリの属性名と属性値の集合を指定します。ここで指定する各属性には、それぞれ以下のものを指定します。
属性の名前
属性の名前を指定します。
属性値の種類
文字列データ、またはバイナリデータを指定します。
属性値
この属性に設定する属性値を指定します。属性値は、複数指定することができます。
エントリを追加する例です。
LDAPMod **mods; char *objectclass_values[] = { "top", "person", "organizationalPerson", "inetOrgPerson", NULL}; char *userpassword_values[] = { "pass001", NULL }; char *telephonenumber_values[] = { "001-9999-5555", NULL }; char *title_values[] = { "chief engineer", NULL }; char *sn_values[] = { "Fujitsu", NULL }; char *cn_values[] = { "User001", NULL }; char *dn; mods[0]->mod_op = 0; mods[0]->mod_type = "objectclass"; mods[0]->mod_values = objectclass_values; mods[1]->mod_op = 0; mods[1]->mod_type = "userpassword"; mods[1]->mod_values = userpassword_values; mods[2]->mod_op = 0; mods[2]->mod_type = "telephonenumber"; mods[2]->mod_values = telephonenumber_values; mods[3]->mod_op = 0; mods[3]->mod_type = "title"; mods[3]->mod_values = title_values; mods[4]->mod_op = 0; mods[4]->mod_type = "sn"; mods[4]->mod_values = sn_values; mods[5]->mod_op = 0; mods[5]->mod_type = "cn"; mods[5]->mod_values = cn_values; mods[6] = NULL; dn = "cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com"; rtn = ldap_add_s( ld, dn, mods ); if ( rtn != LDAP_SUCCESS ) { /* エラー発生時の処理をする */ return -1; }
属性値にバイナリを指定する方法については、“属性値の追加”-“属性値にバイナリを指定する”を参照してください。