InfoDirectory使用手引書 |
目次 索引 |
第3部 SDK編 | > 第5章 アプリケーション開発環境(LDAP C API) | > 5.2 関数インタフェース | > 5.2.8 エントリの変更 |
この関数は、非同期型のエントリ変更処理を行います。【指定形式】
int ldap_modify(
LDAP *ld,
char *dn,
LDAPMod *mods[]
);【パラメタの説明】
- ld
ldap_init()またはldapssl_init()で通知された、セションハンドルを指定します。
- dn
変更するDNのアドレスを指定します。
- mods
LDAPMod構造体のポインタ配列のアドレスを指定します。ここで指定するポインタ配列は、最後の項目にNULLを設定しておく必要があります。各LDAPMod構造体には、属性ごとの変更情報を設定します。LDAPMod構造体の各項目に設定する値は、以下のとおりです。
- mod_op
属性値の種類と、変更操作の種類の論理和をとったものを指定します。
・属性値の種類
属性値が文字列データの場合 : 0
属性値がバイナリデータの場合 : LDAP_MOD_BVALUES・変更操作の種類
属性値を追加する場合 : LDAP_MOD_ADD
属性値を削除する場合 : LDAP_MOD_DELETE
属性値を置換する場合 : LDAP_MOD_REPLACE- mod_type
変更する属性の名前のアドレスを指定します。LDAP V3プロトコルの場合、一部の属性では属性名に“;binary”を付加したものを指定する必要があります。
・属性値を追加する場合 : 値を追加する属性の名前を指定します。
・属性値を削除する場合 : 値を削除する属性の名前を指定します。
・属性値を置換する場合 : 値を置換する属性の名前を指定します。- mod_vals
追加/削除/置換する属性値のアドレスを指定します。ここで指定する属性値は、mod_vals共用体のポインタ配列です。このポインタ配列は、最後の項目にNULLを設定する必要があります。
・属性値を追加する場合 : 追加する属性値のポインタ配列のアドレスを指定します。
・属性値を削除する場合 : 削除する属性値のポインタ配列のアドレスを指定します。mod_typeパラメタで指定された属性のすべての属性値を削除する場合には、NULLを指定します。
・属性値を置換する場合 : 置換する属性値のポインタ配列のアドレスを指定します。mod_vals共用体のメンバは、mod_opパラメタに指定された属性値の種類によって、以下のどちらかを使用します。
・文字列データの場合 : mod_valuesに、属性値のポインタ配列のアドレスを指定します。各属性値は、最後の項目にNULLを設定する必要があります。
・バイナリデータの場合 : mod_bvaluesに、berval構造体のポインタ配列のアドレスを指定します。berval構造体には、属性値のアドレスとサイズを指定します。各属性値のポインタ配列は、最後の項目にNULLを設定しておく必要があります。
以下の変更を行う場合のパラメタの例を、以下に示します。
- mail ------------------------> 追加
- telephoneNumber -------------> 変更
- facsimileTelephoneNumber -----> 削除
図: modifyにおけるパラメタの例(文字列データの場合)
以下の変更を行う場合のパラメタの例を以下に示します。
- jpegphoto --------------------> 追加
図: modifyにおけるパラメタの例(バイナリデータの場合)
【復帰値】
この関数は、復帰値として以下の値を返します。
- 正常完了の場合 : メッセージID
- 異常完了の場合 : -1
【注意事項】
- 非同期関数の結果獲得
非同期関数の処理結果を受取る場合、ldap_result()を使用します。この時、ldap_modify()の復帰値として返されたメッセージIDを指定します。詳細は、処理結果の受取り/判定を参照してください。
目次 索引 |