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

1.20.8 エントリの追加インタフェース

関数名

関数の説明

ldap_add()

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

ldap_add_s()

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

ldap_add_ext()

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

ldap_add_ext_s()

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


1.20.8.1 ldap_add()

名前

  ldap_add

形式

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

機能説明

  この関数は、非同期型でエントリを追加します。親となるエントリが存在しない場合には、指定されたエントリを追加することができません。

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

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

パラメタ

  ld

  ldap_init()、またはldapssl_init()で通知された、セションハンドルを指定します。

  dn

  追加するエントリの、DNのアドレスを指定します。

  attrs

  LDAPMod構造体のポインタ配列アドレスを指定します。各LDAPMod構造体には、エントリに付加する属性名と属性値を設定します。LDAPMod構造体の各項目には、以下の値を設定します。

  • mod_op

      属性値の種類を指定します。

    • 属性値が文字列データの場合 : 0

    • 属性値がバイナリデータの場合 : LDAP_MOD_BVALUES
        

  • mod_type

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

  • mod_vals

      属性値のアドレスを指定します。
      ここで指定する属性値は、mod_vals共用体のポインタ配列です。このポインタ配列は、最後の項目にNULLが設定されている必要があります。mod_vals共用体のメンバは、mod_opパラメタに指定された属性値の種類によって、以下のどちらかを使用します。

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

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

      各属性値のポインタ配列は、最後の項目にNULLが設定されている必要があります。

  以下のエントリをツリーに追加する場合のパラメタの例を、下図に示します。

  • エントリの構成

    cn: user001
    cn: user001 Fujitsu
    objectClass: top
    objectClass: person
    objectClass: organizationalPerson
    objectClass: inetOrgPerson

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

バイナリデータの属性値を追加する場合のパラメタの例を下図に示します。

jpegPhotoを追加

復帰値

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

1.20.8.2 ldap_add_s()

名前

  ldap_add_s

形式

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

機能説明

  この関数は、同期型でエントリを追加します。親となるエントリが存在しない場合には、指定されたエントリを追加することができません。

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

パラメタ

  ld

  ldap_init()、またはldapssl_init()で通知された、セションハンドルを指定します。

  dn

  追加するエントリの、DNのアドレスを指定します。

  attrs

  LDAPMod構造体のポインタ配列アドレスを指定します。各LDAPMod構造体には、エントリに付加する属性名と属性値を設定します。LDAPMod構造体の各項目には、以下の値を設定します。

  • mod_op

      属性値の種類を指定します。

    • 属性値が文字列データの場合 : 0

    • 属性値がバイナリデータの場合 : LDAP_MOD_BVALUES
        

  • mod_type

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

  • mod_vals

      属性値のアドレスを指定します。
      ここで指定する属性値は、mod_vals共用体のポインタ配列です。このポインタ配列は、最後の項目にNULLが設定されている必要があります。mod_vals共用体のメンバは、mod_opパラメタに指定された属性値の種類によって、以下のどちらかを使用します。

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

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

      各属性値のポインタ配列は、最後の項目にNULLが設定されている必要があります。

  エントリを追加する場合のパラメタの例については、“add処理におけるパラメタの構成”を参照してください。

復帰値

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

1.20.8.3 ldap_add_ext()

名前

  ldap_add_ext

形式

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

機能説明

  この関数は、非同期型でエントリを追加します。親となるエントリが存在しない場合には、指定されたエントリを追加することができません。

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

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

パラメタ

  ld

  ldap_init()、またはldapssl_init()で通知された、セションハンドルを指定します。

  dn

  追加するエントリの、DNのアドレスを指定します。

  attrs

  LDAPMod構造体のポインタ配列アドレスを指定します。各LDAPMod構造体には、エントリに付加する属性名と属性値を設定します。LDAPMod構造体の各項目には、以下の値を設定します。

  • mod_op

      属性値の種類を指定します。

    • 属性値が文字列データの場合 : 0

    • 属性値がバイナリデータの場合 : LDAP_MOD_BVALUES
        

  • mod_type

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

  • mod_vals

      属性値のアドレスを指定します。
      ここで指定する属性値は、mod_vals共用体のポインタ配列です。このポインタ配列は、最後の項目にNULLが設定されている必要があります。mod_vals共用体のメンバは、mod_opパラメタに指定された属性値の種類によって、以下のどちらかを使用します。

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

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

      各属性値のポインタ配列は、最後の項目にNULLが設定されている必要があります。

  エントリを追加する場合のパラメタの例については、“add処理におけるパラメタの構成”を参照してください。

  serverctrls

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

  clientctrls

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

  msgidp

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

復帰値

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

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

1.20.8.4 ldap_add_ext_s()

名前

  ldap_add_ext_s

形式

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

機能説明

  この関数は、同期型でエントリを追加します。親となるエントリが存在しない場合には、指定されたエントリを追加することができません。

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

パラメタ

  ld

  ldap_init()、またはldapssl_init()で通知された、セションハンドルを指定します。

  dn

  追加するエントリの、DNのアドレスを指定します。

  attrs

  LDAPMod構造体のポインタ配列アドレスを指定します。各LDAPMod構造体には、エントリに付加する属性名と属性値を設定します。LDAPMod構造体の各項目には、以下の値を設定します。

  • mod_op

      属性値の種類を指定します。

    • 属性値が文字列データの場合 : 0

    • 属性値がバイナリデータの場合 : LDAP_MOD_BVALUES
        

  • mod_type

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

  • mod_vals

      属性値のアドレスを指定します。
      ここで指定する属性値は、mod_vals共用体のポインタ配列です。このポインタ配列は、最後の項目にNULLが設定されている必要があります。mod_vals共用体のメンバは、mod_opパラメタに指定された属性値の種類によって、以下のどちらかを使用します。

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

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

      各属性値のポインタ配列は、最後の項目にNULLが設定されている必要があります。

  エントリを追加する場合のパラメタの例については、“add処理におけるパラメタの構成”を参照してください。

  serverctrls

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

  clientctrls

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

復帰値

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