ページの先頭行へ戻る
Interstage Application Server リファレンスマニュアル(API編)
Interstage

1.21.6 エントリの変更インタフェース

関数名

関数の説明

ldap_modify()

指定されたエントリを更新します。
(非同期型)

ldap_modify_s()

指定されたエントリを更新します。
(同期型)

ldap_modify_ext()

指定されたエントリを更新します。
(非同期型、LDAP V3拡張関数)

ldap_modify_ext_s()

指定されたエントリを更新します。
(同期型、LDAP V3拡張関数)

1.21.6.1 ldap_modify()

名前

ldap_modify

形式

#include "idldap.h"
int  ldap_modify(
        LDAP  *ld,
        const char  *dn,
        LDAPMod  **mods );

機能説明

この関数は、非同期型のエントリ変更処理をします。

非同期型検索の処理結果を受け取る場合、ldap_result()を使用します。この時、ldap_modify()の復帰値として返されたメッセージIDを指定します。詳細は、“処理結果の受取り/判定”を参照してください。

ldapssl_init()で獲得したセションハンドルを使用している場合、SSLライブラリで発生したエラーをldapssl_error()で参照することができます。

パラメタ

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

    変更する属性の名前のアドレスを指定します。一部の属性では属性名に“;binary”を付加したものを指定する必要があります。

    • 属性値を追加する場合 : 値を追加する属性の名前を指定します。

    • 属性値を削除する場合 : 値を削除する属性の名前を指定します。

    • 属性値を置換する場合 : 値を置換する属性の名前を指定します。

  • mod_vals

    追加/削除/置換する属性値のアドレスを指定します。ここで指定する属性値は、mod_vals共用体のポインタ配列です。このポインタ配列は、最後の項目にNULLを設定する必要があります。

    • 属性値を追加する場合 : 追加する属性値のポインタ配列のアドレスを指定します。

    • 属性値を削除する場合 : 削除する属性値のポインタ配列のアドレスを指定します。mod_typeパラメタで指定された属性のすべての属性値を削除する場合には、NULLを指定します。

    • 属性値を置換する場合 : 置換する属性値のポインタ配列のアドレスを指定します。

    mod_vals共用体のメンバは、mod_opパラメタに指定された属性値の種類によって、以下のどちらかを使用します。

    • 文字列データの場合 : mod_valuesに、属性値のポインタ配列のアドレスを指定します。各属性値は、最後の項目にNULLを設定する必要があります。

    • バイナリデータの場合 : mod_bvaluesに、berval構造体のポインタ配列のアドレスを指定します。berval構造体には、属性値のデータアドレスとデータ長を指定します。

    各属性値のポインタ配列は、最後の項目にNULLを設定しておく必要があります。

modify処理におけるパラメタの構成

modifyにおいて、以下の変更(文字列データの変更)をする場合のパラメタの例を下図に示します。

・mail ------------------------> 追加

・telephoneNumber -------------> 変更

・facsimileTelephoneNumber -----> 削除

  


modifyにおいて、以下の変更(バイナリデータの変更)をする場合のパラメタの例を下図に示します。

jpegPhoto --------------------> 追加

復帰値

この関数は、復帰値として以下の値を返します。

1.21.6.2 ldap_modify_s()

名前

ldap_modify_s

形式

#include "idldap.h"
int  ldap_modify_s(
        LDAP  *ld,
        const char  *dn,
        LDAPMod  **mods );

機能説明

この関数は、同期型のエントリ変更処理をします。

ldapssl_init()で獲得したセションハンドルを使用している場合、SSLライブラリで発生したエラーをldapssl_error()で参照することができます。

パラメタ

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

    変更する属性の名前のアドレスを指定します。一部の属性では属性名に“;binary”を付加したものを指定する必要があります。

    • 属性値を追加する場合 : 値を追加する属性の名前を指定します。

    • 属性値を削除する場合 : 値を削除する属性の名前を指定します。

    • 属性値を置換する場合 : 値を置換する属性の名前を指定します。

      

  • mod_vals

    追加/削除/置換する属性値のアドレスを指定します。ここで指定する属性値は、mod_vals共用体のポインタ配列です。このポインタ配列は、最後の項目にNULLを設定しておく必要があります。

    • 属性値を追加する場合 : 追加する属性値のポインタ配列のアドレスを指定します。

    • 属性値を削除する場合 : 削除する属性値のポインタ配列のアドレスを指定します。mod_typeパラメタで指定された属性のすべての属性値を削除する場合には、NULLを指定します。

    • 属性値を置換する場合 : 置換する属性値のポインタ配列のアドレスを指定します。

    mod_vals共用体のメンバは、mod_opパラメタに指定された属性値の種類によって、以下のどちらかを使用します。

    • 文字列データの場合 : mod_valuesに、属性値のポインタ配列のアドレスを指定します。

    • バイナリデータの場合 : mod_bvaluesに、berval構造体のポインタ配列のアドレスを指定します。berval構造体には、属性値のアドレスとサイズを指定します。

    各属性値のポインタ配列は、最後の項目にNULLを設定しておく必要があります。

変更する場合のパラメタの例については、“modify処理におけるパラメタの構成”を参照してください。

復帰値

この関数では、復帰値としてLDAPエラーコードを返します。LDAPエラーコードの値については、“メッセージ集”の“LDAPエラーコード”を参照してください。

1.21.6.3 ldap_modify_ext()

名前

ldap_modify_ext

形式

#include "idldap.h"
int  ldap_modify_ext(
        LDAP  *ld,
        const char  *dn,
        LDAPMod  **mods,
        LDAPControl  **serverctrls,
        LDAPControl  **clientctrls,
        int  *msgidp );

機能説明

この関数は、非同期型のエントリ変更処理をします。

非同期関数の処理結果を受け取る場合、ldap_result()を使用します。この時、ldap_modify_ext()の復帰値として返されたメッセージIDを指定します。詳細は、“処理結果の受取り/判定”を参照してください。

ldapssl_init()で獲得したセションハンドルを使用している場合、SSLライブラリで発生したエラーをldapssl_error()で参照することができます。

パラメタ

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

    変更する属性の名前のアドレスを指定します。一部の属性では属性名に“;binary”を付加したものを指定する必要があります。

    • 属性値を追加する場合 : 値を追加する属性の名前を指定します。

    • 属性値を削除する場合 : 値を削除する属性の名前を指定します。

    • 属性値を置換する場合 : 値を置換する属性の名前を指定します。

      

  • mod_vals

    追加/削除/置換する属性値のアドレスを指定します。ここで指定する属性値は、mod_vals共用体のポインタ配列です。このポインタ配列は、最後の項目にNULLを設定する必要があります。

    • 属性値を追加する場合 : 追加する属性値のポインタ配列のアドレスを指定します。

    • 属性値を削除する場合 : 削除する属性値のポインタ配列のアドレスを指定します。mod_typeパラメタで指定された属性のすべての属性値を削除する場合には、NULLを指定します。

    • 属性値を置換する場合 : 置換する属性値のポインタ配列のアドレスを指定します。

    mod_vals共用体のメンバは、mod_opパラメタに指定された属性値の種類によって、以下のどちらかを使用します。

    • 文字列データの場合 : mod_valuesに、属性値のポインタ配列のアドレスを指定します。各属性値は、最後の項目にNULLを設定する必要があります。

    • バイナリデータの場合 : mod_bvaluesに、berval構造体のポインタ配列のアドレスを指定します。berval構造体には、属性値のアドレスとサイズを指定します。

    各属性値のポインタ配列は、最後の項目にNULLを設定しておく必要があります。

変更する場合のパラメタの例については、“modify処理におけるパラメタの構成”を参照してください。

serverctrls

Interstage ディレクトリサービスではサーバコントロールをサポートしていないため、このパラメタにはNULLを指定します。

clientctrls

本ライブラリではクライアントコントロールをサポートしていないため、このパラメタにはNULLを指定します。

msgidp

メッセージIDを格納するための変数のアドレスを指定します。

復帰値

この関数では、復帰値としてLDAPエラーコードを返します。LDAPエラーコードの値については、“メッセージ集”の“LDAPエラーコード”を参照してください。

また、正常終了の場合には、msgidpパラメタで指定した変数にメッセージIDが設定されています。

1.21.6.4 ldap_modify_ext_s()

名前

ldap_modify_ext_s

形式

#include "idldap.h"
int  ldap_modify_ext_s(
        LDAP  *ld,
        const char  *dn,
        LDAPMod  **mods,
        LDAPControl  **serverctrls,
        LDAPControl  **clientctrls );

機能説明

この関数は、同期型のエントリ変更処理をします。

ldapssl_init()で獲得したセションハンドルを使用している場合、SSLライブラリで発生したエラーをldapssl_error()で参照することができます。

パラメタ

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

    変更する属性の名前のアドレスを指定します。一部の属性では属性名に“;binary”を付加したものを指定する必要があります。

    • 属性値を追加する場合 : 値を追加する属性の名前を指定します。

    • 属性値を削除する場合 : 値を削除する属性の名前を指定します。

    • 属性値を置換する場合 : 値を置換する属性の名前を指定します。

      

  • mod_vals

    追加/削除/置換する属性値のアドレスを指定します。ここで指定する属性値は、mod_vals共用体のポインタ配列です。このポインタ配列は、最後の項目にNULLを設定する必要があります。

    • 属性値を追加する場合 : 追加する属性値のポインタ配列のアドレスを指定します。

    • 属性値を削除する場合 : 削除する属性値のポインタ配列のアドレスを指定します。mod_typeパラメタで指定された属性のすべての属性値を削除する場合には、NULLを指定します。

    • 属性値を置換する場合 : 置換する属性値のポインタ配列のアドレスを指定します。

    mod_vals共用体のメンバは、mod_opパラメタに指定された属性値の種類によって、以下のどちらかを使用します。

    • 文字列データの場合 : mod_valuesに、属性値のポインタ配列のアドレスを指定します。各属性値は、最後の項目にNULLを設定する必要があります。

    • バイナリデータの場合 : mod_bvaluesに、berval構造体のポインタ配列のアドレスを指定します。berval構造体には、属性値のアドレスとサイズを指定します。

    各属性値のポインタ配列は、最後の項目にNULLを設定しておく必要があります。

変更する場合のパラメタの例については、“modify処理におけるパラメタの構成”を参照してください。

serverctrls

Interstage ディレクトリサービスではサーバコントロールをサポートしていないため、このパラメタにはNULLを指定します。

clientctrls

本ライブラリではクライアントコントロールをサポートしていないため、このパラメタにはNULLを指定します。

復帰値

この関数では、復帰値としてLDAPエラーコードを返します。LDAPエラーコードの値については、“メッセージ集”の“LDAPエラーコード”を参照してください。