ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Directory Server Enterprise Edition開発者ガイド
11g リリース1 (11.1.1.7.0)
B72440-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

15 Directory ServerFunctionリファレンス(パートI)

この章は、書込みプラグインのパブリック関数に関するリファレンスの前半部分です。リファレンスの後半部分は、次の章を参照してください。この章では、次の項目について説明します。

関数の説明では、各関数の詳しい説明の他に、関数のヘッダー・ファイルと構文、関数のパラメータ、関数の戻り値およびメモリーに関する注意事項について説明します。

15.1 機能領域別の関数

この項では、プラグインの関数を機能領域別に分類します。

表15-1 パラメータ・ブロック処理の関数

関数 説明

slapi_pblock_destroy()


パラメータ・ブロックをメモリーから解放します。

slapi_pblock_get()


パラメータ・ブロックから値を取得します。

slapi_pblock_new()


新しいパラメータ・ブロックを作成します。

slapi_pblock_set()


パラメータ・ブロックの値を設定します。


表15-2 メモリー処理の関数

関数 説明

slapi_ch_array_free()


既存の配列を解放します。

slapi_ch_bvdup()


既存のberval構造体のコピーを作成します。

slapi_ch_bvecdup()


既存のberval構造体の配列のコピーを作成します。

slapi_ch_calloc()


指定されたサイズの要素数を持つ配列に領域を割り当てます。

slapi_ch_free()


slapi_ch_malloc()slapi_ch_realloc()およびslapi_ch_calloc()の各関数によって割り当てられた領域を解放します。

slapi_ch_free_string()


既存の文字列を解放します。

slapi_ch_malloc()


メモリーに領域を割り当てます。

slapi_ch_realloc()


割り当てられたメモリー・ブロックのサイズを変更します。

slapi_ch_strdup()


既存の文字列のコピーを作成します。


表15-3 アクセス制御処理の関数

関数 説明

slapi_access_allowed()


現在の操作を要求しているユーザーに、指定されたエントリ、属性または値に操作を実行するアクセス権があるかどうかを確認します。

slapi_acl_check_mods()


指定された変更をエントリに実行する権限がユーザーにあるかどうかを確認します。

slapi_acl_verify_aci_syntax()


エントリのアクセス制御項目(ACI)が有効であるかどうかを確認します。


表15-4 属性処理の関数

関数 説明

slapi_attr_add_value()


属性に値を追加します。

slapi_attr_basetype()


属性のベース型を戻します。

slapi_attr_dup()


属性を複製します。

slapi_attr_first_value_const()


属性の最初の値を取得します。

slapi_attr_flag_is_set()


特定のフラグが設定されているかどうかを判別します。

slapi_attr_free()


属性を解放します。

slapi_attr_get_bervals_copy()


属性に格納されている値をberval構造体の配列に格納します。

slapi_attr_get_flags()


属性に関連付けられているフラグを取得します。

slapi_attr_get_numvalues()


属性が持つ値の数を整数に格納します。

slapi_attr_get_oid_copy()


属性タイプを検索し、そのOID文字列を取得します。

slapi_attr_get_type()


属性タイプの名前を取得します。

slapi_attr_get_valueset()


属性の値を値セットにコピーします。

slapi_attr_init()


空の属性を初期化します。

slapi_attr_new()


新しい属性を作成します。

slapi_attr_next_value_const()


属性の次の値を取得します。

slapi_attr_syntax_normalize()


正規化された属性タイプのコピーを戻します。

slapi_attr_type_cmp()


2つの属性を比較します。

slapi_attr_types_equivalent()


2つの属性名を比較し、それらが同じ属性を表すかどうかを判別します。

slapi_attr_value_cmp()


2つの属性値を比較します。

slapi_attr_value_find()


指定された値が属性に含まれているかどうかを確認します。


表15-5 基本エンコーディング・ルール値処理の関数

関数 説明

slapi_berval_cmp()


2つのberval構造体を比較します。

slapi_ch_bvdup()


既存のberval構造体のコピーを作成します。

slapi_ch_bvecdup()


既存のberval構造体の配列のコピーを作成します。


表15-6 コントロール処理の関数

関数 説明

slapi_build_control()


BerElement、OIDおよび重大性フラグに基づいて、LDAPControl構造体を作成します。

slapi_entry_get_uniqueid()


Directory Serverがサポートするコントロールを示す、オブジェクト識別子(OID)の割当て済配列を取得します。

slapi_control_present()


指定されたオブジェクト識別子(OID)が、コントロールのリストに存在するコントロールを示すかどうかを判別します。

slapi_dup_control()


LDAPControlの割当て済コピーを作成します。

slapi_register_supported_control()


指定されたコントロールをサーバーに登録します。この関数により、コントロールがオブジェクト識別子(OID)に関連付けられます。


表15-7 識別名文字列処理の関数

関数 説明

slapi_dn_beparent()


エントリの親のDNのコピーを取得します。

slapi_dn_ignore_case()


DNのすべての文字を小文字に変換します。

slapi_dn_isbesuffix()


DNがローカル・データベースのサフィックスであるかどうかを判別します。

slapi_dn_isbesuffix_norm()


DNがローカル・データベースのサフィックスであるかどうかを判別します。

slapi_dn_isparent()


DNが特定DNの親であるかどうかを判別します。

slapi_dn_isroot()


DNがローカル・データベースのルートDNであるかどうかを判別します。

slapi_dn_issuffix()


DNが指定されたサフィックスと等しいかどうかを判別します。

slapi_dn_normalize()


DNを正規のフォーマットに変換します。

slapi_dn_normalize_case()


DNを正規のフォーマットに変換し、すべての文字を小文字に変換します。

slapi_dn_normalize_to_end()


DN値の一部を正規化します。

slapi_dn_parent()


エントリの親のDNを取得します。

slapi_dn_plus_rdn()


RDNをDNに追加します。


表15-8 エントリ処理の関数

関数 説明

slapi_entry2str()


LDIF文字列表現を生成します。

slapi_entry2str_with_options()


オプションを指定してLDIF文字列表現を生成します。

slapi_entry_add_rdn_values()


エントリのRDN内のコンポーネントを追加します。

slapi_entry_add_string()


エントリの属性に文字列値を追加します。

slapi_entry_add_values_sv()


エントリの属性にデータ値を追加します。

slapi_entry_add_valueset()


エントリの属性にデータ値を追加します。

slapi_entry_alloc()


新しいエントリにメモリーを割り当てます。

slapi_entry_attr_delete()


エントリから属性を削除します。

slapi_entry_attr_find()


特定の属性がエントリに含まれているかどうかをチェックします。

slapi_entry_attr_get_charptr()


最初の値を文字列として取得します。

slapi_entry_attr_get_int()


最初の値を整数として取得します。

slapi_entry_attr_get_long()


最初の値をLong整数として取得します。

slapi_entry_attr_get_uint()


最初の値を符号なし整数として取得します。

slapi_entry_attr_get_ulong()


最初の値を符号なしLong整数として取得します。

slapi_entry_attr_hasvalue()


エントリの属性に値が含まれているかどうかをチェックします。

slapi_entry_attr_merge_sv()


エントリの属性値に配列を追加します。

slapi_entry_attr_replace_sv()


エントリの属性値を置換します。

slapi_entry_attr_set_charptr()


属性の値を文字列で置換します。

slapi_entry_attr_set_int()


属性の値を整数で置換します。

slapi_entry_attr_set_long()


属性の値をLong整数で置換します。

slapi_entry_attr_set_uint()


属性の値を符号なし整数で置換します。

slapi_entry_attr_set_ulong()


属性の値を符号なしLong整数で置換します。

slapi_entry_delete_string()


属性から文字列を削除します。

slapi_entry_delete_values_sv()


属性からSlapi_Value配列を削除します。

slapi_entry_dup()


エントリおよびそのDNと属性をコピーします。

slapi_entry_first_attr()


エントリの最初の属性を検索します。

slapi_entry_free()


メモリーからエントリを解放します。

slapi_entry_get_dn()


エントリからDNを取得します。

slapi_entry_get_dn_const()


エントリのDNを定数として戻します。

slapi_entry_get_ndn()


エントリのNDNを戻します。

slapi_entry_get_sdn()


エントリからSlapi_DNを戻します。

slapi_entry_get_sdn_const()


エントリからSlapi_DNを定数として戻します。

slapi_entry_get_uniqueid()


エントリから一意のIDを取得します。

slapi_entry_has_children()


指定したエントリに子エントリがあるかどうかを判別します。

slapi_entry_init()


エントリの値を初期化します。

slapi_entry_isroot()


エントリがディレクトリ・スーパーユーザーのエントリであるかどうかを判別します。

slapi_entry_merge_values_sv()


エントリの属性にデータ値の配列を追加します。

slapi_entry_next_attr()


エントリの次の属性を検索します。

slapi_entry_rdn_values_present()


エントリのRDNに存在する値が、属性値としても存在するかどうかをチェックします。

slapi_entry_schema_check()


エントリがオブジェクト・クラスのスキーマに準拠しているかどうかを判別します。

slapi_entry_schema_check_ext ()


エントリに対する一連の変更がスキーマに準拠しているかどうかを判別します。

slapi_entry_set_dn()


エントリのDNを設定します。

slapi_entry_set_sdn()


エントリにSlapi_DN値を設定します。

slapi_entry_size()


エントリのサイズを戻します。

slapi_entry_syntax_check()


エントリの属性が属性構文ルールに準拠しているかどうかを判別します。

slapi_entry_vattr_find()


エントリ内の指定された仮想属性を検索します。

slapi_is_rootdse()


エントリがルートDSEであるかどうかを判別します。

slapi_str2entry()


LDIF表現をエントリに変換します。


表15-9 拡張操作処理の関数

関数 説明

slapi_get_supported_extended_ops_copy()


拡張操作のオブジェクトID (OID)のコピーを取得します。


表15-10 フィルタ処理の関数

関数 説明

slapi_filter_compare()


2つのフィルタが同一であるかどうかを判別します。

slapi_filter_free()


指定されたフィルタを解放します。

slapi_filter_get_attribute_type()


すべての種類の単純なフィルタの属性タイプを取得します。

slapi_filter_get_ava()


フィルタから属性タイプおよび値を取得します。

slapi_filter_get_choice()


指定されたフィルタのタイプを取得します。

slapi_filter_get_subfilt()


フィルタから部分文字列値を取得します。

slapi_filter_get_type()


フィルタで指定された属性タイプを取得します。

slapi_filter_join()


指定された2つのフィルタを結合します。

slapi_filter_list_first()


指定されたフィルタを構成する最初のフィルタを取得します。

slapi_filter_list_next()


次のフィルタを取得します。

slapi_filter_test()


指定されたエントリが特定のフィルタに一致するかどうかを判別します。

slapi_filter_test_ext()


エントリが指定されたフィルタに一致するかどうかを判別します。

slapi_filter_test_simple()


エントリがフィルタに一致するかどうかを判別します。

slapi_str2filter()


検索フィルタの文字列表現をSlapi_Filterタイプのフィルタに変換します。


表15-11 内部操作処理の関数

関数 説明

slapi_add_entry_internal_set_pb()


Slapi_Entry構造を含む、内部追加操作用のSlapi_PBlock構造体を準備します。

slapi_add_internal_pb()


パラメータ・ブロックに基づいてLDAP追加操作を追加し、新しいディレクトリ・エントリを追加します。

slapi_add_internal_set_pb()


内部追加操作のSlapi_PBlock構造体を準備します。

slapi_delete_internal_pb()


パラメータ・ブロックに基づいてLDAP削除操作を実行し、ディレクトリ・エントリを削除します。

slapi_delete_internal_set_pb()


内部削除操作のSlapi_PBlock構造体を準備します。

slapi_free_search_results_internal()


検索結果を解放します。

slapi_modify_internal_pb()


パラメータ・ブロックに基づいてLDAP変更操作を実行し、ディレクトリ・エントリを変更します。

slapi_modify_internal_set_pb()


内部変更操作のSlapi_PBlock構造体を準備します。

slapi_modrdn_internal_pb()


パラメータ・ブロックに基づいてLDAP変更RDN操作を実行し、ディレクトリ・エントリの名前を変更します。

slapi_rename_internal_set_pb()


内部変更RDN操作のSlapi_PBlock構造体を準備します。

slapi_search_internal_callback_pb()


パラメータ・ブロックに基づいてLDAP検索操作を実行し、ディレクトリを検索します。

slapi_search_internal_get_entry()


内部検索操作を実行し、1つのエントリを読み取ります。

slapi_search_internal_pb()


パラメータ・ブロックに基づいてLDAP検索操作を実行し、ディレクトリを検索します。

slapi_search_internal_set_pb()


内部検索操作のSlapi_PBlock構造体を準備します。


表15-12 一致ルール処理の関数

関数 説明

slapi_matchingrule_free()


一致ルールの登録後にSlapi_MatchingRuleEntryを解放します。

slapi_matchingrule_get()


Slapi_MatchingRuleEntryにアクセスします。

slapi_matchingrule_new()


Slapi_MatchingRuleEntry構造体を割り当てます。

slapi_matchingrule_register()


一致ルールをサーバーに登録します。

slapi_matchingrule_set()


Slapi_MatchingRuleEntryを変更します。

slapi_mr_filter_index()


一致ルールのフィルタ索引関数をコールします。

slapi_mr_indexer_create()


一致ルールのインデクサ・ファクトリ関数へのポインタを取得します。


表15-13 変更処理の関数

関数 説明

slapi_entry2mods()


Slapi_EntryからLDAPModの配列を作成します。

slapi_ldapmods_syntax_check ()


指定されたエントリの変更が属性構文ルールに準拠しているかどうかを判別します。

slapi_mod_add_value()


Slapi_Mod構造体に値を追加します。

slapi_mod_done()


Slapi_Mod構造体の内部を解放します。

slapi_mod_dump()


LDAPModの内容をサーバー・ログにダンプします。

slapi_mod_free()


Slapi_Mod構造体を解放します。

slapi_mod_get_first_value()


Slapi_Modイテレータを初期化し、最初の属性値を戻します。

slapi_mod_get_ldapmod_byref()


Slapi_Mod構造体のLDAPModへの参照を取得します。

slapi_mod_get_ldapmod_passout()


Slapi_Mod構造体に格納されているLDAPModを取得します。

slapi_mod_get_next_value()


Slapi_Modイテレータを増分し、次の属性値を戻します。

slapi_mod_get_num_values()


Slapi_Mod構造体の値の数を取得します。

slapi_mod_get_operation()


Slapi_Mod構造体の操作タイプを取得します。

slapi_mod_get_type()


Slapi_Mod構造体の属性タイプを取得します。

slapi_mod_init()


Slapi_Mod構造体を初期化します。

slapi_mod_init_byref()


既存のLDAPModのラッパーであるSlapi_Mod構造体を初期化します。

slapi_mod_init_byval()


LDAPModのコピーを使用してSlapi_Mod構造体を初期化します。

slapi_mod_init_passin()


LDAPModからSlapi_Modを初期化します。

slapi_mod_isvalid()


Slapi_Mod構造体が有効であるかどうかを判別します。

slapi_mod_new()


新しいSlapi_Mod構造体を割り当てます。

slapi_mod_remove_value()


Slapi_Modイテレータの現在位置で値を削除します。

slapi_mod_set_operation()


Slapi_Mod構造体の操作タイプを設定します。

slapi_mod_set_type()


Slapi_Modの属性タイプを設定します。

slapi_mods2entry()


LDAPModの配列からSlapi_Entryを作成します。

slapi_mods_add()


1つの属性値を持つ新しいmodSlapi_Mods構造体に追加します。

slapi_mods_add_ldapmod()


LDAPModSlapi_Mods構造体に追加します。

slapi_mods_add_mod_values()


Slapi_Valueの配列として指定された属性値を使用して、新しいmodSlapi_Mods構造体に追加します。

slapi_mods_add_modbvps()


bervalの配列として指定された属性値を使用して、新しいmodSlapi_Mods構造体に追加します。

slapi_mods_add_smod()


Slapi_ModSlapi_Mods構造体に追加します。

slapi_mods_add_string()


文字列として指定された1つの属性値を使用して、新しいmodSlapi_Mods構造体に追加します。

slapi_mods_done()


Slapi_Mods構造体の内部を解放します。

slapi_mods_dump()


Slapi_Mods構造体の内容をサーバー・ログにダンプします。

slapi_mods_free()


Slapi_Mods構造体を解放します。

slapi_mods_get_first_mod()


Slapi_Modsイテレータを初期化し、最初のLDAPModを戻します。

slapi_mods_get_first_smod()


Slapi_Modsイテレータを初期化し、Slapi_Mods構造体にラップされた最初のmodを戻します。

slapi_mods_get_ldapmods_byref()


Slapi_Mods構造体のLDAPModの配列への参照を取得します。

slapi_mods_get_ldapmods_passout()


Slapi_Mods構造体に格納されているLDAPModの配列を取得します。

slapi_mods_get_next_mod()


Slapi_Modsイテレータを増分し、次のLDAPModを戻します。

slapi_mods_get_next_smod()


Slapi_Modsイテレータを増分し、Slapi_Modsにラップされた次のmodを戻します。

slapi_mods_get_num_mods()


Slapi_Mods構造体の変更の数を取得します。

slapi_mods_init()


Slapi_Modsを初期化します。

slapi_mods_init_byref()


既存のLDAPModの配列のラッパーであるSlapi_Modsを初期化します。

slapi_mods_init_passin()


LDAPModの配列からSlapi_Mods構造体を初期化します。

slapi_mods_insert_after()


イテレータの現在位置より後のSlapi_Mods構造体にLDAPModを挿入します。

slapi_mods_insert_at()


Slapi_Modsの任意の場所にLDAPModを挿入します。

slapi_mods_insert_before()


イテレータの現在位置より前のSlapi_Mods構造体にLDAPModを挿入します。

slapi_mods_insert_smod_at()


Slapi_Modsの任意の場所にSlapi_Modを挿入します。

slapi_mods_insert_smod_before()


イテレータの現在位置より前のSlapi_Mods構造体にSlapi_Modを挿入します。

slapi_mods_iterator_backone()


Slapi_Modsイテレータの現在位置を減分します。

slapi_mods_new()


初期化されていない新しいSlapi_Mods構造体を割り当てます。

slapi_mods_remove()


Slapi_Modsイテレータの現在位置でmodを削除します。

slapi_mods_remove_at()


指定されたSlapi_Modsイテレータの位置でmodを削除します。


表15-14 操作処理の関数

関数 説明

slapi_op_abandoned()


クライアントが現在の操作を中止したかどうかを判別します。

slapi_op_get_type()


Slapi_Operationのタイプを取得します。


表15-15 パスワード処理の関数

関数 説明

slapi_pw_find_sv()


指定されたパスワードが、属性のハッシュ値のいずれかと一致するかどうかを判別します。

slapi_pw_find_valueset()


指定されたパスワードが、属性のハッシュ値のいずれかと一致するかどうかを判別します。


表15-16 ロール処理の関数

関数 説明

slapi_register_role_get_scope()


ロールの有効範囲を決定するコールバックを登録します。

slapi_role_check()


参照されたエントリに、指定されたロールが含まれているかどうかをチェックします。

slapi_role_get_scope()


ロールの有効範囲を指定します。


表15-17 SASLメカニズム処理の関数

関数 説明

slapi_get_supported_saslmechanisms_copy()


サポートされているSimple Authentication and Security Layer (SASL)メカニズムの名前の配列を取得します。

slapi_register_supported_saslmechanism()


指定されたSimple Authentication and Security Layer (SASL)メカニズムをサーバーに登録します。


表15-18 Slapi_Backend構造体処理の関数

関数 説明

slapi_be_exist()


指定されたDNを含むバックエンドが存在するかどうかをチェックします。

slapi_be_get_name()


指定されたバックエンドの名前を戻します。

slapi_be_get_readonly()


バックエンドに関連付けられたデータベースが読取り専用モードであるかどうかを示します。

slapi_be_getsuffix()


指定されたバックエンドに関連付けられたn+1サフィックスを戻します。

slapi_be_gettype()


バックエンドのタイプを戻します。

slapi_be_is_flag_set()


バックエンド構成にフラグが設定されているかどうかをチェックします。

slapi_be_issuffix()


指定されたサフィックスが、登録されているバックエンド・サフィックスと一致することを検証します。

slapi_be_logchanges()


バックエンドに適用された変更を変更ログに記録する必要があるかどうかを示します。

slapi_be_private()


バックエンドがプライベートであるかどうかを検証します。

slapi_be_select()


指定されたDNを含むエントリの処理に使用する必要のあるバックエンドを検索します。

slapi_be_select_by_instance_name()


データベースの処理に使用されるバックエンドを検索します。

slapi_get_first_backend()


最初のバックエンドのバックエンド構造体へのポインタを戻します。

slapi_get_next_backend()


次のバックエンドへのポインタを戻します。

slapi_is_root_suffix()


サフィックスがDITのルート・サフィックスであるかどうかをチェックします。


表15-19 Slapi_DN構造体処理の関数

関数 説明

slapi_moddn_get_newdn()


エントリの新しいDNを構築します。

slapi_sdn_compare()


2つのDNを比較します。

slapi_sdn_copy()


DNをコピーします。

slapi_sdn_done()


Slapi_DN構造体を消去します。

slapi_sdn_dup()


Slapi_DN構造体を複製します。

slapi_sdn_free()


Slapi_DN構造体を解放します。

slapi_sdn_get_backend_parent()


特定のバックエンド内の親のDNを取得します。

slapi_sdn_get_dn()


Slapi_DN構造体からDNを取得します。

slapi_sdn_get_ndn()


Slapi_DN構造体の正規化されたDNを取得します。

slapi_sdn_get_ndn_len()


Slapi_DN構造体の正規化されたDNの長さを取得します。

slapi_sdn_get_parent()


指定されたSlapi_DN構造体の親DNを取得します。

slapi_sdn_get_rdn()


DNからRDNを取得します。

slapi_sdn_get_suffix()


DNによって指定されたエントリを保持するサフィックスを取得します。

slapi_sdn_isempty()


Slapi_DN構造体にDN値が格納されているかどうかをチェックします。

slapi_sdn_isgrandparent()


DNが、あるDNの親の親であるかどうかをチェックします。

slapi_sdn_isparent()


DNが、あるDNの親であるかどうかをチェックします。

slapi_sdn_issuffix()


Slapi_DN構造体に別のサフィックスが含まれているかどうかをチェックします。

slapi_sdn_new()


新しいSlapi_DN構造体を割り当てます。

slapi_sdn_new_dn_byref()


既存のDN文字列を参照して新しいSlapi_DN構造体を作成します。

slapi_sdn_new_dn_byval()


既存のDN文字列をコピーして新しいSlapi_DN構造体を作成します。

slapi_sdn_new_dn_passin()


DN文字列の新しいコピーを参照して新しいSlapi_DN構造体を作成します。

slapi_sdn_new_ndn_byref()


既存の正規化されたDNを参照して新しいSlapi_DN構造体を作成します。

slapi_sdn_new_ndn_byval()


既存の正規化されたDNをコピーして新しいSlapi_DN構造体を作成します。

slapi_sdn_scope_test()


エントリが特定のベースDNの有効範囲内にあるかどうかをチェックします。

slapi_log_info_ex()


既存のDN文字列を参照してSlapi_DN構造体にDN値を設定します。

slapi_sdn_set_dn_byval()


既存のDN文字列をコピーしてSlapi_DN構造体にDN値を設定します。

slapi_sdn_set_dn_passin()


DN文字列の新しいコピーを参照してSlapi_DN構造体にDN値を設定します。

slapi_sdn_set_ndn_byref()


既存の正規化されたDN文字列を参照してSlapi_DN構造体に正規化されたDNを設定します。

slapi_sdn_set_ndn_byval()


既存の正規化されたDN文字列をコピーしてSlapi_DN構造体に正規化されたDNを設定します。

slapi_sdn_set_parent()


エントリに新しい親を設定します。

slapi_sdn_set_rdn()


エントリに新しいRDNを設定します。


表15-20 Slapi_RDN構造体処理の関数

関数 説明

slapi_rdn_add()


既存のRDN構造体に新しいRDNを追加します。

slapi_rdn_compare()


2つのRDNを比較します。

slapi_rdn_contains()


Slapi_RDN構造体が、指定されたタイプ/値ペアに一致するRDNを保持しているかどうかをチェックします。

slapi_rdn_contains_attr()


Slapi_RDN構造体に、指定されたタイプに一致するRDNが含まれているかどうかをチェックします。

slapi_rdn_done()


Slapi_RDN構造体を消去します。

slapi_rdn_free()


Slapi_RDN構造体を解放します。

slapi_rdn_get_first()


最初のRDNのタイプ/値のペアを取得します。

slapi_rdn_get_index()


RDNの索引を取得します。

slapi_rdn_get_index_attr()


最初のRDNの位置および属性値を取得します。

slapi_rdn_get_next()


RDNからのRDNタイプ/値のペアを取得します。

slapi_rdn_get_num_components()


RDNタイプ/値のペアの数を取得します。

slapi_rdn_get_rdn()


Slapi_RDN構造体からRDNを取得します。

slapi_rdn_init()


Slapi_RDN構造体をNULL値で初期化します。

slapi_rdn_init_dn()


既存のDN文字列からSlapi_RDN構造体を初期化します。

slapi_rdn_init_rdn()


既存のSlapi_RDN構造体からSlapi_RDN構造体を初期化します。

slapi_rdn_init_sdn()


既存のSlapi_DN構造体からSlapi_RDN構造体を初期化します。

slapi_rdn_isempty()


Slapi_RDN構造体にRDN値が格納されているかどうかをチェックします。

slapi_rdn_new()


新しいSlapi_RDN構造体を作成します。

slapi_rdn_new_dn()


新しいSlapi_RDN構造体を作成します。

slapi_rdn_new_rdn()


新しいSlapi_RDN構造体を作成します。

slapi_rdn_new_sdn()


新しいSlapi_RDN構造体を作成します。

slapi_rdn_syntax_check()


RDNが属性構文ルールに準拠しているかどうかを判別します。


表15-21 Slapi_Value構造体処理の関数

関数 説明

slapi_value_compare()


2つの値を比較します。

slapi_value_done()


値の内部を解放します。

slapi_value_dup()


値を複製します。

slapi_value_free()


メモリーからSlapi_Value構造体を解放します。

slapi_value_get_berval()


値のberval構造体を取得します。

slapi_value_get_int()


整数の値を変換します。

slapi_value_get_length()


値の長さを取得します。

slapi_value_get_long()


値をLong整数に変換します。

slapi_value_get_string()


値を文字列として返します。

slapi_value_get_uint()


値を符号なし整数に変換します。

slapi_value_get_ulong()


値を符号なしLong整数に変換します。

slapi_value_init()


値を使用せずにSlapi_Value構造体を初期化します。

slapi_value_init_berval()


berval構造体からSlapi_Value構造体を初期化します。

slapi_value_init_string()


文字列からSlapi_Value構造体を初期化します。

slapi_value_init_string_passin()


文字列に含まれている値を使用してSlapi_Value構造体を初期化します。

slapi_value_new()


新しいSlapi_Value構造体を割り当てます。

slapi_value_new_berval()


berval構造体から新しいSlapi_Value構造体を割り当てます。

slapi_value_new_string()


文字列から新しいSlapi_Value構造体を割り当てます。

slapi_value_new_string_passin()


新しいSlapi_Value構造体を割り当て、この構造体を文字列から初期化します。

slapi_value_new_value()


別のSlapi_Value構造体から新しいSlapi_Valueを割り当てます。

slapi_value_set()


値を設定します。

slapi_value_set_berval()


berval構造体からSlapi_Value構造体に値をコピーします。

slapi_value_set_int()


Slapi_Value構造体の整数値を設定します。

slapi_value_set_string()


文字列を値にコピーします。

slapi_value_set_string_passin()


値を設定します。

slapi_value_set_value()


Slapi_Value構造体の値を別のSlapi_Value構造体にコピーします。


表15-22 Slapi_ValueSet構造体処理の関数

関数 説明

slapi_valueset_add_value_optimised()


Slapi_ValueSet構造体にSlapi_Valueを追加します。

slapi_valueset_count()


Slapi_ValueSet構造体に格納されている値の数を戻します。

slapi_valueset_done()


Slapi_ValueSet構造体に格納されている値を解放します。

slapi_valueset_find_const()


属性の構文を使用して、値セット内の値を検索します。

slapi_valueset_first_value_const()


Slapi_ValueSet構造体の最初の値を取得します。

slapi_valueset_free()


指定されたSlapi_ValueSet構造体およびそのメンバーをメモリーから解放します。

slapi_valueset_init()


Slapi_ValueSet構造体を値のない状態にリセットします。

slapi_valueset_new()


新しいSlapi_ValueSet構造体を割り当てます。

slapi_valueset_next_value_const()


Slapi_ValueSet構造体から次の値を取得します。

slapi_valueset_set_from_smod()


Slapi_Mod構造体の値をSlapi_ValueSet構造体にコピーします。

slapi_valueset_set_valueset_optimised()


別のSlapi_ValueSet構造体からSlapi_ValueSet構造体を初期化します。


表15-23 UTF-8文字列処理の関数

関数 説明

slapi_has8thBit()


文字列に8ビット文字が含まれているかどうかをチェックします。

slapi_UTF-8CASECMP()


2つのUTF-8文字列を比較します。

slapi_UTF-8NCASECMP()


指定されたUTF-8文字数を比較します。

slapi_UTF-8ISLOWER()


UTF-8文字が小文字かどうかを確認します。

slapi_UTF-8ISUPPER()


1つのUTF-8文字が大文字かどうかを確認します。

slapi_UTF-8STRTOLOWER()


UTF-8文字列を小文字に変換します。

slapi_UTF-8STRTOUPPER()


UTF-8文字で構成される文字列を変換し、それを大文字に変換します。

slapi_UTF-8TOLOWER()


UTF-8文字を小文字に変換します。

slapi_UTF-8TOUPPER()


小文字のUTF-8文字を大文字に変換します。


表15-24 ログ・メッセージ書込み関数

関数 説明

slapi_log_error_ex()


サーバー・エラー・ログにエラー・メッセージを書き込みます。

slapi_log_info_ex()


サーバー・エラー・ログに情報メッセージを書き込みます。

slapi_log_warning_ex()


サーバー・エラー・ログに警告メッセージを書き込みます。


表15-25 仮想属性処理の関数

関数 説明

slapi_vattr_is_virtual()


指定された属性タイプの値が仮想的に生成されているかどうかを判別します。

slapi_vattr_value_compare()


指定されたエントリの属性タイプおよび名前を比較します。

slapi_vattr_values_free()


値セットおよびタイプ名を解放します。

slapi_vattr_values_get_ex()


エントリから属性タイプの値を戻します。


表15-26 エントリ、参照および結果をクライアントに送信する関数

関数 説明

slapi_send_ldap_referral()


エントリのLDAP v3参照を処理します。

slapi_send_ldap_result()


結果コードをクライアントに返信します。

slapi_send_ldap_search_entry()


検索で見つかったエントリをクライアントに返信します。


表15-27 プラグイン登録の関数

関数 説明

slapi_register_plugin()


別のプラグインを登録します。


15.2 関数の説明(パートI)

以降の項では、slapi_access_allowed()からslapi_moddn_get_newdn()までのプラグインAPI関数について、アルファベット順に説明します。

slapi_modify_internal_pb()からslapi_wait_condvar()のプラグインAPI関数については、次の章で後続の項を説明します。

15.3 関数(アルファベット順)、第I部

15.3.1 slapi_access_allowed()

現在の操作を要求しているユーザーに、指定されたエントリ、属性または値に操作を実行するアクセス権があるかどうかを確認します。

15.3.1.1 構文

#include "slapi-plugin.h"
int slapi_access_allowed( Slapi_PBlock *pb, Slapi_Entry *e,
     char *attr, struct berval *val, int access );

15.3.1.2 パラメータ

この関数は、次のパラメータを取ります。

pb

この関数に渡されるパラメータ・ブロックです。

e

アクセス権をチェックするエントリです。

attr

アクセス権をチェックする属性です。

val

アクセス権をチェックする値を含むberval構造体へのポインタです。

access

チェックするアクセス権のタイプです。たとえば、書込みアクセスをチェックするには、この引数の値としてSLAPI_ACL_WRITEを渡します。

access引数の値には、次のいずれかを指定できます。

SLAPI_ACL_ADD

指定されたエントリを追加する権限です。

SLAPI_ACL_COMPARE

エントリの属性の指定された値を比較する権限です。

SLAPI_ACL_DELETE

指定されたエントリを削除する権限です。

SLAPI_ACL_READ

指定された属性を読み取る権限です。

SLAPI_ACL_SEARCH

指定された属性または値を検索する権限です。

SLAPI_ACL_WRITE

指定されたエントリの名前を変更するために、指定された属性、値または権限を書き込む権限です。

15.3.1.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • エントリ、属性または値に対して、指定された権限がユーザーにある場合はLDAP_SUCCESS

  • エントリ、属性または値に対して、指定された権限がユーザーにない場合はLDAP_INSUFFICIENT_ACCESS

  • 処理中に問題が発生した場合、この関数は次のいずれかのエラー・コードを戻します。

LDAP_OPERATIONS_ERROR

操作の実行中にエラーが発生しました。

このエラーは、指定されたアクセス権のタイプがサーバーで認識されていない場合などに発生します。つまり、以前のテーブルから値が渡されていません。

LDAP_INVALID_SYNTAX

無効な構文が指定されました。

このエラーは、エントリ、属性または値に関連するACLで誤った構文が使用されている場合に発生します。

LDAP_UNWILLING_TO_PERFORM

DSA (このDirectory Serverインスタンス)が、指定された操作を実行できません。

このエラーは、読取り専用データベースに書込みアクセスを要求した場合などに発生します。

15.3.1.4 説明

指定されたエントリ、属性または値に対するアクセス権がユーザーにあるかどうかを確認するには、この関数をコールします。この関数は、このプラグインのコール元である操作を要求したユーザーに対してチェックを実行します。

たとえば、追加操作の事前操作プラグインを作成しているとします。この関数をコールすると、ユーザーがディレクトリにエントリを追加する前に適切なアクセス権があるかどうかを確認できます。

ユーザーにアクセス権があるかどうかを確認する処理の一環として、この関数は次の処理を実行します。

  • 操作を要求しているユーザーがルートDNであるかどうかのチェック

    その場合、この関数はLDAP_SUCCESSを戻します。(ルートDNには、すべての操作を実行する権限があります。)

  • 要求されている操作、クライアントへの接続およびディレクトリ情報が格納されているバックエンド・データベースに関する情報の取得

    • なんらかの理由で要求されている操作を確認できない場合は、LDAP_OPERATIONS_ERRORを戻します。

    • クライアントへの接続が存在しない(操作のリクエストがサーバーまたはバックエンドで行われた)場合は、LDAP_SUCCESSを戻します。(サーバーおよびそのバンクエンドはアクセス制御リストで制限されません。)

    • バックエンド・データベースが読取り専用で、リクエストによって書込みアクセス(SLAPI_ACL_WRITE)をチェックしている場合は、LDAP_UNWILLING_TO_PERFORMを戻します。

    操作を要求しているユーザーが自身のエントリを変更しようとしているかどうかを確認します。

    ACLにより、ユーザーが自身のエントリを変更できるように権限を設定できます。この関数はその条件をチェックします。

    コール元は、この関数をコールする前に、パラメータ・ブロックで指定されたバックエンドが設定されていることを確認する必要があります。次に例を示します。

    be = slapi_be_select(slapi_entry_get_sdn_const(seObjectEntry));
    if (NULL == be) {
        cleanup("backend selection failed for entry: \"%s\"\n", szObjectDN);
        slapi_send_ldap_result(pb,LDAP_NO_SUCH_OBJECT,NULL,
            "Obj not found",0,NULL);
        return(SLAPI_PLUGIN_EXTENDED_SENT_RESULT);
    }
    
    slapi_pblock_set(pb, SLAPI_BACKEND, be);
    nAccessResult =
        slapi_access_allowed(pb,seObjectEntry,"*",bval,SLAPI_ACL_DELETE);
    

15.3.2 slapi_acl_check_mods()

指定された変更をエントリに実行する権限がユーザーにあるかどうかを確認します。

15.3.2.1 構文

#include "slapi-plugin.h"
int slapi_acl_check_mods( Slapi_PBlock *pb, Slapi_Entry *e,
     LDAPMod **mods, char **errbuf );

15.3.2.2 パラメータ

この関数は、次のパラメータを取ります。

pb

この関数に渡されるパラメータ・ブロックです。

e

アクセス権をチェックするエントリです。

mods

エントリに加える変更を表すLDAPMod構造体の配列です。

errbuf

この関数の処理中にエラーが発生した場合のエラー・メッセージを含む文字列へのポインタです。

15.3.2.3 戻り値

次のいずれかの値を戻します。

  • 指定された属性の値に対する書込み権限がユーザーにある場合はLDAP_SUCCESS

  • 指定された属性の値に対する書込み権限がユーザーにない場合はLDAP_INSUFFICIENT_ACCESS

  • 処理中に問題が発生した場合、この関数は次のいずれかのエラー・コードを戻します。

LDAP_OPERATIONS_ERROR

操作の実行中にエラーが発生しました。

LDAP_INVALID_SYNTAX

無効な構文が指定されました。

このエラーは、エントリ、属性または値に関連するACLで誤った構文が使用されている場合に発生します。

LDAP_UNWILLING_TO_PERFORM

DSA (このディレクトリ・サーバー)が、指定された操作を実行できません。

このエラーは、読取り専用データベースに書込みアクセスを要求した場合などに発生します。

15.3.2.4 説明

指定されたエントリを変更するアクセス権がユーザーにあるかどうかを確認する場合に、この関数をコールします。この関数は、このプラグインのコール元である操作を要求したユーザーに対してチェックを実行します。

たとえば、データベース・プラグインを作成してこの関数をコールすると、データベースでエントリを追加、変更または削除する前に適切なアクセス権がユーザーにあるかどうかを確認できます。

ユーザーにアクセス権があるかどうかを確認するプロセスの一環として、この関数は次の処理を実行します。

  • ディレクトリのアクセス制御が無効化されていることのチェック。

    アクセス制御が無効化されている場合、この関数はLDAP_SUCCESSを戻します。

  • LDAPMod配列で指定された属性ごとの各値について、その値に書き込む権限がユーザーにあるかどうかを確認します。具体的には、この関数はチェックするアクセス権としてSLAPI_ACL_WRITEを指定し、slapi_access_allowed()をコールします。

    • なんらかの理由で要求されている操作を確認できない場合は、LDAP_OPERATIONS_ERRORを戻します。

    • クライアントへの接続が存在しない(操作のリクエストがサーバーまたはバックエンドで行われた)場合は、LDAP_SUCCESSを戻します。(サーバーおよびそのバンクエンドはアクセス制御リストで制限されません。)

    • バックエンド・データベースが読取り専用で、リクエストによって書込みアクセス(SLAPI_ACL_WRITE)をチェックしている場合は、LDAP_UNWILLING_TO_PERFORMを戻します。

15.3.2.5 メモリーに関する注意事項

エラー・メッセージの処理が終了した場合は、slapi_ch_free()をコールしてerrbufバッファを解放する必要があります。

15.3.2.6 関連項目

slapi_access_allowed()

slapi_ch_free()

15.3.3 slapi_acl_verify_aci_syntax()

エントリのアクセス制御項目(ACI)が有効であるかどうかを確認します。

15.3.3.1 構文

#include "slapi-plugin.h"
int slapi_acl_verify_aci_syntax (Slapi_Entry *e,
     char **errbuf);

15.3.3.2 パラメータ

この関数は、次のパラメータを取ります。

e

ACIをチェックするエントリです。

errbuf

ACI構文が無効である場合に戻されるエラー・メッセージへのポインタです。

15.3.3.3 戻り値

この関数は、正常終了した場合は0を戻し、エラーが発生した場合は-1を戻します。

15.3.3.4 メモリーに関する注意事項

エラー・メッセージの処理が終了した場合は、slapi_ch_free()をコールしてerrbufバッファを解放する必要があります。

15.3.3.5 関連項目

slapi_ch_free()

15.3.4 slapi_add_entry_internal_set_pb()

Slapi_Entry構造体に関連する、内部追加操作用のパラメータ・ブロックを作成します。

15.3.4.1 構文

#include "slapi-plugin.h"
int slapi_add_entry_internal_set_pb(Slapi_PBlock *pb,
    Slapi_Entry *e, LDAPControl **controls,
    Slapi_ComponentId *plugin_identity, int operation_flags);

15.3.4.2 パラメータ

この関数は、次のパラメータを取ります。

pb

内部追加操作用のパラメータ・ブロックです。

e

追加するエントリです。

controls

追加操作を要求するコントロールの配列です。コントロールがない場合はNULLとします。

plugin_identity

プラグインの初期化時にSLAPI_PLUGIN_IDENTITYから取得したプラグイン識別子です。

operation_flags

NULLまたはSLAPI_OP_FLAG_NEVER_CHAINです。

15.3.4.3 戻り値

この関数は、正常終了した場合は0を戻します。それ以外の場合はLDAPエラー・コードを戻します。

15.3.4.4 説明

この関数は、エントリを使用して、slapi_add_internal_pb()で使用するパラメータ・ブロックを準備します。

15.3.4.5 メモリーに関する注意事項

この関数をコールする前に、slapi_pblock_new()を使用してパラメータ・ブロックを割り当てます。

エントリは、slapi_add_internal_pb()のコール時に使用されます。LDAPControlsは使用されません。

slapi_add_internal_pb()のコール後はパラメータ・ブロックを解放してください。

15.3.5 slapi_add_internal_pb()

新しいディレクトリ・エントリの内部追加操作を実行します。

15.3.5.1 構文

#include "slapi-plugin.h"
 int slapi_add_internal_pb(Slapi_PBlock *pb);

15.3.5.2 パラメータ

この関数は、次のパラメータを取ります。

pb

slapi_add_internal_set_pb()を使用して初期化されたパラメータ・ブロックです。

15.3.5.3 戻り値

渡されたパラメータがNULLポインタの場合、この関数は-1を戻します。それ以外の場合は0を戻します。

作成したコードでこの関数をコールすると、パラメータ・ブロックのSLAPI_PLUGIN_INTOP_RESULTが適切なLDAP結果コードに設定されます。したがって、パラメータ・ブロックのSLAPI_PLUGIN_INTOP_RESULTをチェックすると、エラーが発生したかどうかを確認できます。

15.3.5.4 説明

この関数は、パラメータ・ブロックに基づいて内部追加操作を実行します。パラメータ・ブロックは、slapi_add_internal_set_pb()またはslapi_add_entry_internal_set_pb()をコールして初期化されている必要があります。

15.3.5.5 メモリーに関する注意事項

slapi_add_internal_set_pb()またはslapi_add_entry_internal_set_pb()にどのようなパラメータを渡しても、この関数では変更または使用されません。slapi_add_entry_internal_set_pb()に渡されたエントリ・パラメータは、この関数のコールに成功すると使用されます。

15.3.6 slapi_add_internal_set_pb()

内部追加操作用のパラメータ・ブロックを作成します。

15.3.6.1 構文

#include "slapi-plugin.h"
int slapi_add_internal_set_pb(Slapi_PBlock *pb, const char *dn,
    LDAPMod **attrs, LDAPControl **controls,
    Slapi_ComponentId *plugin_identity, int operation_flags);

15.3.6.2 パラメータ

この関数は、次のパラメータを取ります。

pb

内部追加操作用のパラメータ・ブロックです。

dn

削除するエントリの識別名です。

attrs

削除するエントリの属性の配列です。

controls

追加操作を要求するコントロールの配列です。

plugin_identity

プラグインの初期化時にSLAPI_PLUGIN_IDENTITYから取得したプラグイン識別子です。

operation_flags

NULLまたはSLAPI_OP_FLAG_NEVER_CHAINです。

15.3.6.3 戻り値

この関数は、正常終了した場合は0を戻します。それ以外の場合はLDAPエラー・コードを戻します。

15.3.6.4 説明

この関数は、エントリのコンポーネントを使用して、slapi_add_internal_pb()で使用するパラメータ・ブロックを作成します。

すでにエントリがSlapi_Entry構造体として作成されている場合は、かわりにslapi_add_entry_internal_set_pb()を使用してください。

15.3.6.5 メモリーに関する注意事項

この関数をコールする前に、slapi_pblock_new()を使用してパラメータ・ブロックを割り当てます。

Directory Serverは、この関数に渡されたパラメータを解放しません。

slapi_pblock_destroy()のコール後はパラメータ・ブロックを解放してください。

15.3.7 slapi_attr_add_value()

属性に値を追加します。

15.3.7.1 構文

#include "slapi-plugin.h"
 int slapi_attr_add_value(Slapi_Attr *a, const Slapi_Value *v);

15.3.7.2 パラメータ

この関数は、次のパラメータを取ります。

a

値が格納されている属性です。

v

属性に追加される値です。

15.3.7.3 戻り値

この関数は、常に0を戻します。

15.3.7.4 メモリーに関する注意事項

Directory Serverは、属性に追加されるSlapi_Valueのコピーを作成します。

15.3.8 slapi_attr_basetype()

属性のベース型を戻します。

15.3.8.1 構文

#include "slapi-plugin.h"
char *slapi_attr_basetype( char *type, char *buf, size_t bufsiz );

15.3.8.2 パラメータ

この関数は、次のパラメータを取ります。

type

ベース型の取得元となる属性タイプです。

buf

戻されたベース型を保持するバッファです。

bufsiz

バッファのサイズです。

15.3.8.3 戻り値

ベース型がバッファに収まる場合、この関数はNULLを戻します。ベース型がバッファより長い場合は、ベース型のためのメモリーが割り当てられ、そのポインタが戻されます。

15.3.8.4 説明

この関数は、属性のベース型を戻します(たとえば、cn;lang-jpが指定された場合はcnを戻します)。

15.3.8.5 メモリーに関する注意事項

終了後はslapi_ch_free()をコールして、戻されたベース型を解放する必要があります。

15.3.9 slapi_attr_dup()

属性を複製します。

15.3.9.1 構文

#include "slapi-plugin.h"
 Slapi_Attr *slapi_attr_dup(const Slapi_Attr *attr);

15.3.9.2 パラメータ

この関数は、次のパラメータを取ります。

attr

複製対象の属性です。

15.3.9.3 戻り値

この関数は、属性のコピーを新しく作成して戻します。

15.3.9.4 説明

属性のコピーを作成するには、この関数を使用します。

15.3.9.5 メモリーに関する注意事項

戻された属性は、slapi_attr_free()を使用して解放する必要があります。

15.3.10 slapi_attr_first_value_const()

属性の最初の値を取得します。

15.3.10.1 構文

#include "slapi-plugin.h"
int slapi_attr_first_value_const( const Slapi_Attr *a, const Slapi_Value **v );

15.3.10.2 パラメータ

この関数は、次のパラメータを取ります。

a

目的の値が格納されている属性です。

v

属性の最初の値を保持します。

15.3.10.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 0 (最初の値の索引)

  • -1 (NULLの場合)

15.3.10.4 説明

属性の最初の値を取得するには、この関数を使用します。これは、Slapi_Attr構造体で繰返し処理を行う関数セットの一部です。

15.3.10.5 メモリーに関する注意事項

vに保持されている値は解放しないでください。

15.3.11 slapi_attr_flag_is_set()

特定のフラグが特定の属性に設定されているかどうかを判別します。

15.3.11.1 構文

#include "slapi-plugin.h"
 int slapi_attr_flag_is_set( Slapi_Attr *attr, unsigned long flag );

15.3.11.2 パラメータ

この関数は、次のパラメータを取ります。

attr

チェックする属性です。

flag

属性でチェックするフラグです。

flag引数の値には、次のいずれかを指定できます。

SLAPI_ATTR_FLAG_SINGLE

属性が単一値であるかどうかを判別するフラグ

SLAPI_ATTR_FLAG_OPATTR

属性が操作属性であるかどうかを判別するフラグ

SLAPI_ATTR_FLAG_READONLY

属性が読取り専用であるかどうかを判別するフラグ

15.3.11.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 指定されたフラグが設定されている場合は1

  • 指定されたフラグが設定されていない場合は0

15.3.11.4 説明

この関数は、指定された属性に特定のフラグが設定されているかどうかを判別します。これらのフラグにより、属性が単一値属性、操作属性または読取り専用属性であるかを確認できます。これらのフラグは、Slapi_Attr構造体が初期化されるときにスキーマから設定されます。

15.3.11.5 関連項目

slapi_attr_get_flags()

15.3.12 slapi_attr_free()

属性を解放します。

15.3.12.1 構文

#include "slapi-plugin.h"
 void slapi_attr_free( Slapi_Attr **a );

15.3.12.2 パラメータ

この関数は、次のパラメータを取ります。

a

解放する属性です。

15.3.12.3 説明

不要になった属性を解放するには、この関数を使用します。

15.3.13 slapi_attr_get_bervals_copy()

属性に格納されている値をberval構造体の配列に格納します。

15.3.13.1 構文

#include "slapi-plugin.h"
 int slapi_attr_get_bervals_copy(Slapi_Attr *a,
    struct berval ***vals );

15.3.13.2 パラメータ

この関数は、次のパラメータを取ります。

a

目的の値が格納されている属性です。

vals

目的の値を保持するberval構造体ポインタの配列へのポインタです。

15.3.13.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 値が見つかった場合は0

  • -1 (NULLの場合)

15.3.13.4 説明

この関数は、属性からberval構造体ポインタの配列に値をコピーします。

15.3.13.5 メモリーに関する注意事項

この配列は、ber_bvecfree(3LDAP)を使用して解放してください。

15.3.14 slapi_attr_get_flags()

指定された属性に関連付けられているフラグを取得します。

15.3.14.1 構文

#include "slapi-plugin.h"
 int slapi_attr_get_flags( Slapi_Attr *attr, unsigned long *flags );

15.3.14.2 パラメータ

この関数は、次のパラメータを取ります。

attr

フラグを取得する属性です。

flags

この関数をコールすると、このパラメータは、指定された属性のフラグへのポインタに設定されます。このフラグは属性の現在のデータの一部であり、データのコピーではないため、フラグを解放しないでください。

設定されているフラグを確認するには、次のうちの1つ以上を使用して、flags引数の値にビット単位のANDを使用します。

SLAPI_ATTR_FLAG_SINGLE

属性が単一値であるかどうかを判別するフラグ

SLAPI_ATTR_FLAG_OPATTR

属性が操作属性であるかどうかを判別するフラグ

SLAPI_ATTR_FLAG_READONLY

属性が読取り専用であるかどうかを判別するフラグ

15.3.14.3 戻り値

この関数は、正常終了した場合は0を戻します。

15.3.14.4 説明

この関数は、指定された属性に関連付けられているフラグを取得します。これらのフラグにより、属性が単一値属性、操作属性または読取り専用属性であるかを確認できます。

15.3.14.5 関連項目

slapi_attr_flag_is_set()

15.3.15 slapi_attr_get_numvalues()

属性が持つ値の数を指定された整数に格納します。

15.3.15.1 構文

#include "slapi-plugin.h"
 int slapi_attr_get_numvalues( const Slapi_Attr *a, int *numValues);

15.3.15.2 パラメータ

この関数は、次のパラメータを取ります。

a

カウント対象の値が格納されている属性です。

numValues

カウントされた値を保持する整数です。

15.3.15.3 戻り値

この関数は、常に0を戻します。

15.3.15.4 説明

この関数は、属性内の値の数をカウントし、その数を整数に格納します。

15.3.16 slapi_attr_get_oid_copy()

構文を検索して属性タイプを取得し、そのOID文字列のコピーを戻します。

15.3.16.1 構文

#include "slapi-plugin.h"
 int slapi_attr_get_oid_copy( const Slapi_Attr *attr, char **oidp );

15.3.16.2 パラメータ

この関数は、次のパラメータを取ります。

attr

目的のタイプが格納されている属性です。

oidp

属性タイプのOIDのコピー先となる文字列です。

15.3.16.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 属性タイプが見つかった場合は0

  • そうでない場合は-1

15.3.16.4 説明

構文を検索して属性タイプのOIDを取得するには、この関数を使用します。

15.3.16.5 メモリーに関する注意事項

この文字列は、slapi_ch_free()を使用して解放する必要があります。

15.3.17 slapi_attr_get_plugin()

指定された属性タイプの値の処理に使用される構文プラグインへのポインタを取得します。

15.3.17.1 構文

#include "slapi-plugin.h"
int slapi_attr_get_plugin( Slapi_Attr *a, void **plugin );

15.3.17.2 パラメータ

この関数は、次のパラメータを取ります。

a

アクセスする関連する構文プラグインが格納されている属性です。

plugin

このパラメータには、この関数に渡されるタイプの属性を処理するために登録されているプラグインへのポインタが設定されます。このポインタはコピーではないため、ポインタを解放しないでください。

15.3.17.3 戻り値

この関数は0を戻します。

15.3.18 slapi_attr_get_type()

指定された属性から属性タイプの名前を取得します。

15.3.18.1 構文

#include "slapi-plugin.h"
 int slapi_attr_get_type( Slapi_Attr *attr, char **type );

15.3.18.2 パラメータ

この関数は、次のパラメータを取ります。

attr

タイプを取得する属性です。

type

この関数をコールすると、このパラメータは、指定された属性のタイプへのポインタに設定されます。この属性タイプは属性の現在のデータの一部であり、データのコピーではないため、属性タイプを解放しないでください。

15.3.18.3 戻り値

この関数は、正常終了した場合は0を戻します。

15.3.19 slapi_attr_get_valueset()

属性に格納されている既存の値を値セットにコピーします。

15.3.19.1 構文

#include "slapi-plugin.h"
 int slapi_attr_get_valueset(const Slapi_Attr *a,
    Slapi_ValueSet **vs);

15.3.19.2 パラメータ

この関数は、次のパラメータを取ります。

a

値セットに設定する値が格納されている属性です。これには有効な属性を指定する必要があり、NULLは指定できません。

vs

最初のパラメータからの値を格納します。

15.3.19.3 戻り値

この関数は、常に0を戻します。

15.3.19.4 メモリーに関する注意事項

vs内の値セットは、slapi_valueset_free()を使用して解放します。

15.3.20 slapi_attr_init()

ベース型を指定して空の属性を初期化します。

15.3.20.1 構文

#include "slapi-plugin.h"
 Slapi_Attr *slapi_attr_init(Slapi_Attr *a, const char *type);

15.3.20.2 パラメータ

この関数は、次のパラメータを取ります。

a

初期化対象の空の属性です。

type

初期化のための属性タイプです。

15.3.20.3 戻り値

この関数は、新しく初期化された属性か、スキーマでタイプが指定されなかった場合は空の属性を戻します。

15.3.20.4 説明

属性タイプを指定して空の属性を初期化するには、この関数を使用します。

15.3.20.5 メモリーに関する注意事項

Directory Serverは、type文字列のコピーを作成します。

15.3.21 slapi_attr_new()

新しい属性を作成します。

15.3.21.1 構文

#include "slapi-plugin.h"
 Slapi_Attr *slapi_attr_new( void );

15.3.21.2 パラメータ

この関数にパラメータはありません。

15.3.21.3 戻り値

この関数は、新しく作成した属性を戻します。

15.3.21.4 説明

空の属性を作成するには、この関数を使用します。

15.3.21.5 関連項目

slapi_attr_dup()

slapi_attr_free()

15.3.22 slapi_attr_next_value_const()

属性の次の値を取得します。

15.3.22.1 構文

#include "slapi-plugin.h"
 int slapi_attr_next_value_const( const Slapi_Attr *a, int index,
    const Slapi_Value **v );

15.3.22.2 パラメータ

この関数は、次のパラメータを取ります。

a

目的の値が格納されている属性です。

index

戻される値の索引です(0からカウント)。

v

属性の値を保持します。

15.3.22.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 値が見つかった場合はhint + 1

  • NULLの場合またはhintの位置で値が見つからない場合は-1

15.3.22.4 説明

属性の次の値を取得するには、この関数を使用します。索引に関連付けられた属性の値が、値に格納されます。これは、Slapi_Attr構造体で繰返し処理を行う関数セットの一部です。

15.3.23 slapi_attr_syntax_normalize()

構文内の属性タイプを検索し、正規化された属性タイプのコピーを戻します。

15.3.23.1 構文

#include "slapi-plugin.h"
 char * slapi_attr_syntax_normalize( const char *s );

15.3.23.2 パラメータ

この関数は、次のパラメータを取ります。

s

検索する属性タイプです。

15.3.23.3 戻り値

この関数は、目的の正規化された属性のコピーまたは渡された属性の正規化されたコピーを戻します。

15.3.23.4 説明

構文を検索して属性タイプを取得し、その正規化された形式を戻すには、この関数を使用します。属性タイプがスキーマに定義されていない場合、この関数はタイプのコピーを小文字に変換して戻します。

15.3.23.5 メモリーに関する注意事項

戻された文字列は、slapi_ch_free()を使用して解放する必要があります。

15.3.23.6 関連項目

slapi_ch_free()

15.3.24 slapi_attr_type_cmp()

2つの属性タイプを比較し、それらが同じであるかどうかを判別します。

15.3.24.1 構文

#include "slapi-plugin.h"
 int slapi_attr_type_cmp( char *t1, char *t2, int opt );

15.3.24.2 パラメータ

この関数は、次のパラメータを取ります。

t1

比較する最初の属性タイプの名前です。

t2

比較する2番目の属性タイプの名前です。

opt

次のいずれかの値です。

  • 0 - タイプをそのまま比較します。

  • 1 - タイプのベース名のみを比較します(たとえば、タイプがcn;lang-enの場合は、タイプのcn部分のみが比較されます)。

  • 2 - 最初のタイプにないオプションを2番目のタイプで無視します。たとえば、最初のタイプがcnで2番目のタイプがcn;lang-enの場合、2番目のタイプのlang-enオプションは最初のタイプに含まれていません。この場合、2つのタイプは同一であるとみなされます。

15.3.24.3 戻り値

この関数は、タイプ名が等しい場合は0を戻し、等しくない場合は0以外の値を戻します。

15.3.25 slapi_attr_types_equivalent()

2つの属性名を比較し、それらが同じ属性を表すかどうかを判別します。

15.3.25.1 構文

#include "slapi-plugin.h"
 int slapi_attr_types_equivalent( const char *t1, const char *t2 );

15.3.25.2 パラメータ

この関数は、次のパラメータを取ります。

t1

比較する最初の属性タイプへのポインタです。

t2

比較する2番目の属性タイプへのポインタです。

15.3.25.3 戻り値

この関数は、次のいずれかの値を戻します。

  • t1t2が同じ属性を表す場合は1

  • t1t2が同じ属性を表さない場合は0

15.3.26 slapi_attr_value_cmp()

指定された属性の2つの値を比較し、それらが等しいかどうかを判別します。

15.3.26.1 構文

#include "slapi-plugin.h"
 int slapi_attr_value_cmp( Slapi_Attr *attr, struct berval *v1,
    struct berval *v2 );

15.3.26.2 パラメータ

この関数は、次のパラメータを取ります。

attr

値を比較する方法の指定に使用する属性です(たとえば、大/小文字の区別なく文字列が属性に格納されている場合、その文字列は大/小文字を考慮せずに比較されます)。

v1

比較する最初の値が格納されているberval構造体へのポインタです。

v2

比較する2番目の値が格納されているberval構造体へのポインタです。

15.3.26.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 値が等しい場合は0

  • 値が等しくない場合は-1

15.3.27 slapi_attr_value_find()

等価一致ルールを使用して、指定した値が属性に含まれているかどうかを確認します。

15.3.27.1 構文

#include "slapi-plugin.h"
int slapi_attr_value_find( Slapi_Attr *a, struct berval *v );

15.3.27.2 パラメータ

この関数は、次のパラメータを取ります。

a

チェックする属性です。

v

検索する値が格納されているberval構造体へのポインタです。

15.3.27.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 等価一致ルールに基づいて、指定された値と一致する値が属性に含まれている場合は0

    たとえば、CNの場合、BABS JENSENおよびBabs Jensenは一致します。

  • 指定された値が属性に含まれていない場合は-1

15.3.28 slapi_be_exist()

指定されたDNを含むバックエンドが存在するかどうかをチェックします。

15.3.28.1 構文

#include "slapi-plugin.h"
 int slapi_be_exist(const Slapi_DN *sdn);

15.3.28.2 パラメータ

この関数は、次のパラメータを取ります。

sdn

探しているバックエンドのDNへのポインタです。

15.3.28.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 指定されたDNを含むバックエンドが存在する場合は1

  • バックエンドが存在しない場合は0

15.3.28.4 関連項目

slapi_be_select()

15.3.29 slapi_be_get_name()

指定されたバックエンドの名前を戻します。

15.3.29.1 構文

#include "slapi-plugin.h"
 char * slapi_be_get_name(Slapi_Backend * be);

15.3.29.2 パラメータ

この関数は、次のパラメータを取ります。

be

バックエンド構成が格納されている構造体へのポインタです。

15.3.29.3 戻り値

この関数は、指定されたバックエンドに関連付けられている名前を戻します。

15.3.29.4 メモリーに関する注意事項

戻されたポインタは解放しないでください。

15.3.30 slapi_be_get_readonly()

バックエンドに関連付けられたデータベースが読取り専用モードであるかどうかを示します。

15.3.30.1 構文

#include "slapi-plugin.h"
 int slapi_be_get_readonly(Slapi_Backend *be);

15.3.30.2 パラメータ

この関数は、次のパラメータを取ります。

be

バックエンド構成が格納されている構造体へのポインタです。

15.3.30.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • データベースが読取り専用モードでない場合は0

  • データベースが読取り専用モードの場合は1

15.3.31 slapi_be_getsuffix()

指定されたバックエンドに関連付けられたn番目のサフィックスのDNを戻します。

15.3.31.1 構文

#include "slapi-plugin.h"
 const Slapi_DN *slapi_be_getsuffix(Slapi_Backend *be, int n);

15.3.31.2 パラメータ

この関数は、次のパラメータを取ります。

be

バックエンド構成が格納されている構造体へのポインタです。

n

索引です(0から開始)。

15.3.31.3 戻り値

この関数は、サフィックスのDNが存在する場合はそのDNを戻し、バックエンドにn番目のサフィックスが存在しない場合はNULLを戻します。

15.3.31.4 説明

この関数は、指定されたバックエンドに関連付けられているn番目のサフィックス(0からカウント)を戻します。この関数は、以前のバージョンのDirectory ServerプラグインAPIとの互換性のために残されています。

15.3.31.5 メモリーに関する注意事項

戻されたポインタは解放しないでください。

15.3.32 slapi_be_gettype()

バックエンドのタイプを戻します。

15.3.32.1 構文

#include "slapi-plugin.h"
 const char * slapi_be_gettype(Slapi_Backend *be);

15.3.32.2 パラメータ

この関数は、次のパラメータを取ります。

be

バックエンド構成が格納されている構造体へのポインタです。

15.3.32.3 戻り値

この関数は、バックエンドのタイプを戻します。バックエンドのタイプには、次のようなものがあります。

  • chaining (チェーン(データベース・リンクとも呼ばれる)に使用します)

  • default (バインドのみをサポートし、パススルー認証に使用します)

  • DSE (構成パラメータに使用します)

  • ldbm database (使用しているディレクトリ・データを格納します)

  • schema-internal (スキーマ構成に使用します)

15.3.32.4 メモリーに関する注意事項

戻されたポインタは解放しないでください。

15.3.33 slapi_be_is_flag_set()

バックエンド構成にフラグが設定されているかどうかをチェックします。

15.3.33.1 構文

#include "slapi-plugin.h"
 int slapi_be_is_flag_set(Slapi_Backend * be, int flag);

15.3.33.2 パラメータ

この関数は、次のパラメータを取ります。

be

バックエンド構成が格納されている構造体へのポインタです。

flag

チェックするフラグ(SLAPI_BE_FLAG_REMOTE_DATASLAPI_BE_FLAG_SUSPENDED)です。

15.3.33.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • バックエンド構成にフラグが設定されていない場合は0

  • フラグが設定されている場合は1

15.3.34 slapi_be_issuffix()

指定されたサフィックスが、登録されているバックエンド・サフィックスと一致することを検証します。

15.3.34.1 構文

#include "slapi-plugin.h"
 int slapi_be_issuffix(const Slapi_Backend *be,
    const Slapi_DN *suffix);

15.3.34.2 パラメータ

この関数は、次のパラメータを取ります。

be

バックエンド構成が格納されている構造体へのポインタです。

suffix

探しているサフィックスのDNです。

15.3.34.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 指定されたバックエンドにサフィックスが含まれていない場合は0

  • 指定されたバックエンドにサフィックスが含まれている場合は1

15.3.34.4 説明

この関数は、指定されたサフィックスが、指定されたバックエンドに登録されているサフィックスと完全に一致するかどうかをチェックします。

15.3.35 slapi_be_logchanges()

LDBMデータベース・バックエンドに適用された変更を変更ログに記録する必要があるかどうかを示します。この値は読取りのみであり、設定はできません。

15.3.35.1 構文

#include "slapi-plugin.h"
 int slapi_be_logchanges(Slapi_Backend *be);

15.3.35.2 パラメータ

この関数は、次のパラメータを取ります。

be

バックエンド構成が格納されている構造体へのポインタです。

15.3.35.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 特定のバックエンドに適用された変更を変更ログに記録する必要がない場合は0

  • 変更を変更ログに記録する必要がある場合は1

15.3.36 slapi_be_private()

バックエンドがプライベートであるかどうかを検証します。

15.3.36.1 構文

#include "slapi-plugin.h"
 int slapi_be_private( Slapi_Backend * be );

15.3.36.2 パラメータ

この関数は、次のパラメータを取ります。

be

バックエンド構成が格納されている構造体へのポインタです。

15.3.36.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • バックエンドがユーザーから隠されていない場合(バックエンド・タイプchainingおよびldbm databaseの場合)は0

  • バックエンドがユーザーから隠されている場合(内部使用のみ、バックエンド・タイプdefaultDSEschema-internal)は1

15.3.37 slapi_be_select()

指定されたDNを含むエントリの処理に使用する必要のあるバックエンドを検索します。

15.3.37.1 構文

#include "slapi-plugin.h"
 Slapi_Backend * slapi_be_select( const Slapi_DN * sdn );

15.3.37.2 パラメータ

この関数は、次のパラメータを取ります。

sdn

バックエンドを取得するDNへのポインタです。

15.3.37.3 戻り値

この関数は、デフォルト・バックエンドへのポインタを戻します。適切なサフィックスを持つバックエンドが構成されていない場合、これはバインド操作のみが可能な空のバックエンドとなります。それ以外の場合は、バックエンド構造体へのポインタを戻します。

15.3.37.4 メモリーに関する注意事項

戻されたポインタは解放しないでください。

15.3.37.5 関連項目

slapi_be_select_by_instance_name()

15.3.38 slapi_be_select_by_instance_name()

データベースの処理に使用されるバックエンドを検索します。

15.3.38.1 構文

#include "slapi-plugin.h"
 Slapi_Backend *slapi_be_select_by_instance_name( const char *name );

15.3.38.2 パラメータ

この関数は、次のパラメータを取ります。

name

userRootなど、必要とする構造体を持つバックエンドのCNの値へのポインタです。

15.3.38.3 戻り値

適切な名前のバックエンドが構成されていない場合、この関数はNULLを戻します。それ以外の場合は、バックエンド構造体へのポインタを戻します。

15.3.38.4 説明

この関数は、パラメータとして指定されたデータベースの処理に使用する必要のあるバックエンドを検索します。

15.3.38.5 メモリーに関する注意事項

戻されたポインタは解放しないでください。

15.3.38.6 関連項目

slapi_be_select()

15.3.39 slapi_berval_cmp()

2つのberval構造体を比較します。

15.3.39.1 構文

#include "slapi-plugin.h"
int slapi_berval_cmp(const struct berval* L,const struct berval* R);

15.3.39.2 パラメータ

この関数は、次のパラメータを取ります。

L

一方のberval構造体です。

R

もう一方のberval構造体です。

15.3.39.3 説明

この関数は、2つのberval構造体が等価であるかどうかをチェックします。

15.3.39.4 戻り値

2つのberval構造体が等価である場合、この関数は0を戻します。LRより短い場合は負の値を戻し、LRより長い場合は正の値を戻します。LRが同じサイズでも内容が異なるとき、LRより小さい場合は負の値を戻し、LRより大きい場合は正の値を戻します。LおよびRはバイトの配列として比較されます。

15.3.40 slapi_build_control()

BerElement、OIDおよび重大性フラグに基づいて、LDAPControl構造体を作成します。

15.3.40.1 構文

#include "slapi-plugin.h"
int slapi_build_control( char const *oid, BerElement const *ber,
    char iscritical, LDAPControl **ctrlp );

15.3.40.2 パラメータ

この関数は、次のパラメータを取ります。

oid

作成されるコントロールのOID (オブジェクト識別子)です。

ber

コントロール値が格納されているBerElementです。コントロールに値がない場合はNULLを渡します。

iscritical

重大性フラグです。0以外の場合は、コントロールが重要とマーク付けされます。0の場合は重要とマーク付けされません。

ctrlp

割り当てられたLDAPControl構造体を格納するポインタです。

15.3.40.3 戻り値

正常終了した場合、この関数はLDAP_SUCCESS (LDAP結果コード)を戻します。

15.3.40.4 説明

この関数は、BerElement、OIDおよび重大性フラグに基づいて、LDAPControl構造体を作成します。作成されたLDAPControlは、LDAPクライアント・リクエストまたは内部操作で使用できます。

たとえば、ber_init(3LDAP)を使用してBerElementを構築できます。

15.3.40.5 メモリーに関する注意事項

Directory Serverは、oid文字列を複製します。

berパラメータの内容はコール元が責任を持ちます。

slapi_build_control()berパラメータは、ber_free (3LDAP)を使用して解放できます。

ctrlpで戻されたLDAPControlポインタは、LDAP API関数のldap_control_free(3LDAP)をコールして解放する必要があります。

15.3.40.6 関連項目

ber_free(3LDAP)
ber_init(3LDAP)
ldap_control_free(3LDAP)

slapi_build_control_from_berval()

15.3.41 slapi_build_control_from_berval()

berval構造体、OIDおよび重大性フラグに基づいて、LDAPControl構造体を作成します。

15.3.41.1 構文

#include "slapi-plugin.h"
 int slapi_build_control_from_berval( char const *oid,
    struct berval *bvp, char iscritical, LDAPControl **ctrlp );

15.3.41.2 パラメータ

この関数は、次のパラメータを取ります。

oid

作成されるコントロールのOID (オブジェクト識別子)です。

bvp

コントロール値が格納されているbervalです。コントロールに値がない場合はNULLを渡します。

iscritical

重大性フラグです。0以外の場合は、コントロールが重要とマーク付けされます。0の場合は重要とマーク付けされません。

ctrlp

割り当てられたLDAPControl構造体を格納するポインタです。

15.3.41.3 戻り値

この関数は、常にLDAP_SUCCESS (LDAP結果コード)を戻します。

15.3.41.4 説明

この関数は、berval、OIDおよび重大性フラグに基づいて、LDAPControl構造体を作成します。作成されたLDAPControlは、LDAPクライアント・リクエストまたは内部操作で使用できます。

15.3.41.5 メモリーに関する注意事項

Directory Serverは、oid文字列を複製します。

bvpパラメータの内容は、この関数で使用されます。そのため、この関数のコールに成功したときは、コール元でbvp->bv_valポインタを解放しないでください。

ctrlpで戻されたLDAPControlポインタは、LDAP API関数のldap_control_free(3LDAP)をコールして解放する必要があります。

15.3.41.6 関連項目

ldap_control_free(3LDAP)

slapi_build_control()

15.3.42 slapi_ch_array_free()

既存の配列を解放します。

15.3.42.1 構文

#include "slapi-plugin.h"
 void slapi_ch_array_free( char **arrayp );

15.3.42.2 パラメータ

この関数は、次のパラメータを取ります。

arrayp

解放する配列へのポインタです。このパラメータにはNULLを指定できません。

15.3.42.3 説明

この関数は、arraypが参照するchar **を解放します。たとえば、次のコードでは、arrayおよびa1の両方が解放されます。

char **array;
char *a1;

array = malloc(2*sizeof(char *));
a1 = strdup("hello");

array[0] = a1;
array[1] = NULL;

slapi_ch_array_free(array);

15.3.43 slapi_ch_bvdup()

既存のberval構造体のコピーを作成します。

15.3.43.1 構文

#include "slapi-plugin.h"
struct berval* slapi_ch_bvdup( const struct berval *v );

15.3.43.2 パラメータ

この関数は、次のパラメータを取ります。

v

コピーするberval構造体へのポインタです。

15.3.43.3 戻り値

この関数は、berval構造体の新しいコピーへのポインタを戻します。構造体を複製できない場合(仮想メモリーが足りない場合など)は、slapdプログラムが停止します。

15.3.43.4 メモリーに関する注意事項

vパラメータの内容は、この関数では変更されません。戻されたberval構造体は、LDAP API関数のber_bvfree(3LDAP)をコールして解放する必要があります。

15.3.43.5 関連項目

ber_bvfree(3LDAP)

slapi_ch_bvecdup()

15.3.44 slapi_ch_bvecdup()

既存のberval構造体の配列のコピーを作成します。

15.3.44.1 構文

#include "slapi-plugin.h"
extern struct berval** slapi_ch_bvecdup (const struct berval **v);

15.3.44.2 パラメータ

この関数は、次のパラメータを取ります。

v

コピーするberval構造体の配列へのポインタです。

15.3.44.3 戻り値

この関数は、berval構造体の新しいコピーの配列へのポインタを戻します。構造体を複製できない場合(仮想メモリーが足りない場合など)は、slapdプログラムが停止します。

15.3.44.4 メモリーに関する注意事項

vパラメータの内容は、この関数では変更されません。戻されたberval構造体は、LDAP API関数のber_bvfree(3LDAP)をコールして解放する必要があります。

15.3.44.5 関連項目

ber_bvfree(3LDAP)

slapi_ch_bvecdup()

15.3.45 slapi_ch_calloc()

指定されたサイズの要素数を持つ配列に領域を割り当てます。

15.3.45.1 構文

#include "slapi-plugin.h"
char * slapi_ch_calloc( unsigned long nelem, unsigned long size );

15.3.45.2 パラメータ

この関数は、次のパラメータを取ります。

nelem

メモリーを割り当てる要素数です。

size

メモリーを割り当てる要素のサイズ(バイト)です。

15.3.45.3 戻り値

この関数は、新しく割り当てられたメモリー領域へのポインタを戻します。領域を割り当てられない場合(仮想メモリーが足りない場合など)は、slapdプログラムが停止します。

15.3.45.4 メモリーに関する注意事項

この関数は、標準のcalloc() C関数のかわりにコールする必要があります。また、メモリーを割り当てられない場合は、メモリー不足のエラー・メッセージを出力してslapdサーバーが停止します。

戻されたポインタは、slapi_ch_free()をコールして解放する必要があります。

15.3.46 slapi_ch_free()

slapi_ch_malloc()slapi_ch_realloc()およびslapi_ch_calloc()の各関数によって割り当てられた領域を解放し、ポインタをNULLに設定します。この関数は、標準のfree() C関数のかわりにコールします。

15.3.46.1 構文

#include "slapi-plugin.h"
void slapi_ch_free( void **ptr );

15.3.46.2 パラメータ

この関数は、次のパラメータを取ります。

ptr

解放するメモリー・ブロックへのポインタのアドレスです。NULLの場合は処理が行われません。

15.3.46.3 メモリーに関する注意事項

slapi_ch_free()に渡すptrは、slapi_ch_malloc()slapi_ch_realloc()slapi_ch_calloc()またはslapi_ch_strdup()のコールを使用して割り当てられたメモリーへのポインタのアドレスとする必要があります。

15.3.47 slapi_ch_free_string()

slapi_ch_malloc()slapi_ch_realloc()およびslapi_ch_calloc()によって割り当てられた既存の文字列を解放します。この関数は、標準のfree() C関数のかわりにコールします。

15.3.47.1 構文

#include "slapi-plugin.h"
void slapi_ch_free_string( char **s );

15.3.47.2 パラメータ

この関数は、次のパラメータを取ります。

s

解放する文字列のアドレスです。

15.3.47.3 説明

この関数は、既存の文字列を解放します。文字列を使用している場合は、slapi_ch_free()を優先して使用する必要があります。引数を(void**)にキャストするためコンパイル時のエラー・チェックを行わないslapi_ch_free()とは異なり、これはコンパイル時のチェックを実行し、不正なエラー引数がないかどうかを確認します。

15.3.48 slapi_ch_malloc()

メモリーに領域を割り当てます。

15.3.48.1 構文

#include "slapi-plugin.h"
char * slapi_ch_malloc( unsigned long size );

15.3.48.2 パラメータ

この関数は、次のパラメータを取ります。

size

メモリーを取得する領域のサイズ(バイト)です。

15.3.48.3 戻り値

この関数は、新しく割り当てられたメモリー領域へのポインタを戻します。領域を割り当てられない場合(仮想メモリーが足りない場合など)は、slapdプログラムが停止します。

15.3.48.4 メモリーに関する注意事項

この関数は、標準のmalloc() C関数のかわりにコールする必要があります。また、メモリーを割り当てられない場合は、メモリー不足のエラー・メッセージを出力してslapdサーバーが停止します。

戻されたポインタは、slapi_ch_free()をコールして解放する必要があります。

15.3.49 slapi_ch_realloc()

割り当てられたメモリー・ブロックのサイズを変更します。

15.3.49.1 構文

#include "slapi-plugin.h"
char * slapi_ch_realloc( char *block, unsigned long size );

15.3.49.2 パラメータ

この関数は、次のパラメータを取ります。

block

割り当てられた既存のメモリー・ブロックへのポインタです。

size

メモリー・ブロックに割り当てる新しいサイズ(バイト)です。

15.3.49.3 戻り値

この関数は、再割当てされたメモリー領域へのポインタを戻します。領域を割り当てられない場合(仮想メモリーが足りない場合など)は、slapdプログラムが停止します。

15.3.49.4 メモリーに関する注意事項

この関数は、標準のrealloc() C関数のかわりにコールする必要があります。また、メモリーを割り当てられない場合は、メモリー不足のエラー・メッセージを出力してslapdサーバーが停止します。

この関数に渡すblockパラメータは、slapi_ch_malloc()slapi_ch_calloc()slapi_ch_strdup()などのslapiのコールを使用して割り当てられたポインタのアドレスとする必要があります。

戻されたポインタは、slapi_ch_free()をコールして解放する必要があります。

15.3.50 slapi_ch_strdup()

既存の文字列のコピーを作成します。

15.3.50.1 構文

#include "slapi-plugin.h"
char * slapi_ch_strdup( char *s );

15.3.50.2 パラメータ

この関数は、次のパラメータを取ります。

s

コピーする文字列へのポインタです。

15.3.50.3 戻り値

この関数は、文字列のコピーへのポインタを戻します。領域を割り当てられない場合(仮想メモリーが足りない場合など)は、slapdプログラムが停止します。

15.3.50.4 メモリーに関する注意事項

この関数は、標準のstrdup() C関数のかわりにコールする必要があります。また、メモリーを割り当てられない場合は、メモリー不足のエラー・メッセージを出力してslapdサーバーが停止します。

戻されたポインタは、slapi_ch_free()をコールして解放する必要があります。

15.3.51 slapi_compute_add_evaluator()

クライアントに結果を戻すとき、生成およびエントリに追加する算出属性の評価に当たってサーバーが使用するコールバックを設定します。

15.3.51.1 構文

#include "slapi-plugin.h"
int slapi_compute_add_evaluator(slapi_compute_callback_t fcn);

15.3.51.2 パラメータ

この関数は、次のパラメータを取ります。

fcn

算出属性を評価するときにコールする関数です。

15.3.51.3 戻り値

この関数は、正常終了した場合は0を戻します。それ以外の場合は、コールバックにメモリーを割り当てられなかったことを示すENOMEMを戻します。

15.3.51.4 説明

コールバックの詳細は、「slapi_compute_callback_t」を参照してください。プラグイン初期化の一環としてコールバックを登録します。

15.3.52 slapi_compute_add_search_rewriter_ex()

算出属性を検索するときにサーバーが使用するコールバックを設定します。

15.3.52.1 構文

#include "slapi-plugin.h"
int slapi_compute_add_search_rewriter_ex(
    slapi_search_rewrite_callback_t function,
    slapi_search_rewrite_callback_t cleanup_function);

15.3.52.2 パラメータ

この関数は、次のパラメータを取ります。

function

検索のフィルタを再書き込みするためにコールする関数です。

cleanup_function

再書込み検索実行後のクリーンアップのためにコールする関数です。

15.3.52.3 戻り値

この関数は、正常終了した場合は0を戻します。それ以外の場合は、コールバックにメモリーを割り当てられなかったことを示すENOMEMを戻します。

15.3.52.4 説明

コールバックの詳細は、第14章「データ型と構造体のリファレンス」を参照してください。

15.3.53 slapi_control_present()

指定されたオブジェクト識別子(OID)が、コントロールのリストに存在するコントロールを示すかどうかを判別します。

15.3.53.1 構文

#include "slapi-plugin.h"
int slapi_control_present( LDAPControl **controls, char const *oid,
    struct berval **val, int *iscritical );

15.3.53.2 パラメータ

この関数は、次のパラメータを取ります。

controls

チェックするコントロールのリストです。

oid

検索するコントロールのOIDです。

val

コントロールのリストにコントロールが存在する場合、この関数にはコントロールの値が格納されているberval構造体へのポインタを指定します。コントロール値へのポインタを格納しない場合は、このパラメータにNULLを渡します。

iscritical

コントロールのリストにコントロールが存在する場合、この関数にはサーバーの処理にコントロールが重要であるかどうかを指定します。

  • 0は、コントロールが処理にとって重要でないことを示します。

  • 1は、コントロールが処理にとって重要であることを示します。

  • コントロールが重要であるかどうかの指示を格納しない場合は、このパラメータにNULLを渡します。

15.3.53.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 指定されたコントロールがコントロールのリストに存在する場合は1

  • コントロールのリストにコントロールが存在しない場合は0

15.3.53.4 メモリーに関する注意事項

val出力パラメータは、コントロール配列を参照するように設定されます。コントロール値のコピーは作成されません。

15.3.54 slapi_delete_internal_pb()

パラメータ・ブロックに基づいてLDAP削除操作を実行し、ディレクトリ・エントリを削除します。

15.3.54.1 構文

#include "slapi-plugin.h"
 int slapi_delete_internal_pb(Slapi_PBlock *pb);

15.3.54.2 パラメータ

この関数は、次のパラメータを取ります。

pb

slapi_delete_internal_set_pb()を使用して初期化されたパラメータ・ブロックです。

15.3.54.3 戻り値

渡されたパラメータがNULLポインタの場合、この関数は-1を戻します。それ以外の場合は0を戻します。

作成したコードでこの関数をコールすると、パラメータ・ブロックのSLAPI_PLUGIN_INTOP_RESULTが適切なLDAP結果コードに設定されます。したがって、パラメータ・ブロックのSLAPI_PLUGIN_INTOP_RESULTをチェックすると、エラーが発生したかどうかを確認できます。

15.3.54.4 説明

この関数は、パラメータ・ブロックに基づいて内部削除操作を実行します。パラメータ・ブロックは、slapi_delete_internal_set_pb()をコールして初期化されている必要があります。

15.3.54.5 メモリーに関する注意事項

slapi_delete_internal_set_pb()にどのようなパラメータを渡しても、この関数では変更または使用されません。

15.3.54.6 関連項目

slapi_delete_internal_set_pb()

15.3.55 slapi_delete_internal_set_pb()

内部削除操作用のパラメータ・ブロックを作成します。

15.3.55.1 構文

#include "slapi-plugin.h"
int slapi_delete_internal_set_pb(Slapi_PBlock *pb, const char *dn,
    LDAPControl **controls, const char *uniqueid,
    Slapi_ComponentId *plugin_identity, int operation_flags);

15.3.55.2 パラメータ

この関数は、次のパラメータを取ります。

pb

内部追加操作用のパラメータ・ブロックです。

dn

削除するエントリの識別名です。

controls

追加操作を要求するコントロールの配列です。

uniqueid

DNではなく、これを使用する場合のエントリの一意の識別子です。

plugin_identity

プラグインの初期化時にSLAPI_PLUGIN_IDENTITYから取得したプラグイン識別子です。

operation_flags

NULLまたはSLAPI_OP_FLAG_NEVER_CHAINです。

15.3.55.3 戻り値

この関数は、正常終了した場合は0を戻します。それ以外の場合はLDAPエラー・コードを戻します。

15.3.55.4 説明

この関数は、エントリのコンポーネントを使用して、slapi_delete_internal_pb()で使用するパラメータ・ブロックを作成します。

15.3.55.5 メモリーに関する注意事項

この関数をコールする前に、slapi_pblock_new()を使用してパラメータ・ブロックを割り当てます。

Directory Serverは、この関数に渡されたパラメータを解放しません。

slapi_delete_internal_pb()のコール後はパラメータ・ブロックを解放してください。

15.3.56 slapi_destroy_condvar()

メモリーからSlapi_CondVar構造体を解放します。

15.3.56.1 構文

#include "slapi-plugin.h"
void slapi_destroy_condvar( Slapi_CondVar *cvar );

15.3.56.2 パラメータ

この関数は、次のパラメータを取ります。

cvar

メモリーから解放するSlapi_CondVar構造体へのポインタです。

15.3.56.3 説明

この関数は、メモリーからSlapi_CondVar構造体を解放します。この関数をコールする前に、この状態変数が使用されていないことを確認する必要があります。

15.3.57 slapi_destroy_mutex()

メモリーからSlapi_Mutex構造体を解放します。

15.3.57.1 構文

#include "slapi-plugin.h"
void slapi_destroy_mutex( Slapi_Mutex *mutex );

15.3.57.2 パラメータ

この関数は、次のパラメータを取ります。

mutex

メモリーから解放するSlapi_Mutex構造体へのポインタです。

15.3.57.3 説明

この関数は、メモリーからSlapi_Mutex構造体を解放します。コール側関数は、現在はロック専用関数にスレッドが存在しないことを確認する必要があります。ロックをしても削除に対する自己参照型保護は行われません。

15.3.58 slapi_dn_beparent()

バックエンドの親(サフィックスDN)の識別名(DN)のコピーを取得します。

エントリのDNがローカル・データベースのサフィックスであるかどうかをチェックしない場合は、かわりにslapi_dn_parent()関数をコールします。

15.3.58.1 構文

#include "slapi-plugin.h"
char *slapi_dn_beparent( Slapi_PBlock *pb, char *dn );

15.3.58.2 パラメータ

この関数は、次のパラメータを取ります。

pb

パラメータ・ブロックです。

dn

親を検索するエントリのDNです。

15.3.58.3 戻り値

この関数は親エントリのDNを戻し、指定されたDNがNULLの場合、DNが空文字列の場合、DNに親がない場合(o=example.comなど)または指定されたDNがローカル・データベースのサフィックスである場合は、NULLを戻します。

15.3.58.4 関連項目

slapi_dn_parent()

15.3.59 slapi_dn_ignore_case()

識別名(DN)のすべての文字を小文字に変換します。

15.3.59.1 構文

#include "slapi-plugin.h"
char *slapi_dn_ignore_case( char *dn );

15.3.59.2 パラメータ

この関数は、次のパラメータを取ります。

dn

小文字に変換するDNです。

15.3.59.3 戻り値

この関数は、小文字のDNを戻します。dn引数として渡された変数も適宜変換されることに注意してください。

15.3.59.4 関連項目

slapi_dn_normalize()

15.3.60 slapi_dn_isbesuffix()

指定された識別名(DN)がローカル・データベースのサフィックスであるかどうかを判別します。この関数をコールする前にslapi_dn_normalize_case()をコールし、DNを正規化してすべての文字を小文字に変換する必要があります。

15.3.60.1 構文

#include "slapi-plugin.h"
int slapi_dn_isbesuffix( Slapi_PBlock *pb, char *dn );

15.3.60.2 パラメータ

この関数は、次のパラメータを取ります。

pb

パラメータ・ブロックです。

dn

チェックするDNです。

15.3.60.3 戻り値

この関数は、指定されたDNがローカル・データベースのサフィックスの場合は1を戻し、DNがサフィックスでない場合は0を戻します。

15.3.61 slapi_dn_isbesuffix_norm()

指定された識別名(DN)がローカル・データベースのサフィックスであるかどうかを判別します。

15.3.61.1 構文

#include "slapi-plugin.h"
int slapi_dn_isbesuffix_norm( Slapi_PBlock *pb, const char *dn );

15.3.61.2 パラメータ

この関数は、次のパラメータを取ります。

pb

パラメータ・ブロックです。

dn

チェックするDNです。

15.3.61.3 戻り値

この関数は、指定されたDNがローカル・データベースのサフィックスの場合は1を戻し、DNがサフィックスでない場合は0を戻します。

15.3.62 slapi_dn_isparent()

特定のDNが、指定された別のDNの親であるかどうかを判別します。この関数をコールする前にslapi_dn_normalize_case()をコールし、DNを正規化してすべての文字を小文字に変換する必要があります。

15.3.62.1 構文

#include "slapi-plugin.h"
int slapi_dn_isparent( const char *parentdn, char *childdn );

15.3.62.2 パラメータ

この関数は、次のパラメータを取ります。

parentdn

このDNがchilddnの親であるかどうかを判別します。

childdn

このDNがparentdnの子であるかどうかを判別します。

15.3.62.3 戻り値

この関数は、parentdnchilddnの親である場合は0以外の値を戻し、parentdnchilddnの親でない場合は0を戻します。

15.3.62.4 関連項目

slapi_dn_issuffix()

15.3.63 slapi_dn_isroot()

指定されたDNがこのローカル・データベースのルートDNであるかどうかを判別します。この関数をコールする前にslapi_dn_normalize_case()をコールし、DNを正規化してすべての文字を小文字に変換する必要があります。

15.3.63.1 構文

#include "slapi-plugin.h"
int slapi_dn_isroot( Slapi_PBlock *pb, char *dn );

15.3.63.2 パラメータ

この関数は、次のパラメータを取ります。

pb

パラメータ・ブロックです。

dn

チェックするDNです。

15.3.63.3 戻り値

この関数は、指定されたDNがローカル・データベースのルートDNの場合は1を戻し、DNがルートDNでない場合は0を戻します。

15.3.64 slapi_dn_issuffix()

DNが、指定されたサフィックスと等しいかどうかを判別します。この関数をコールする前にslapi_dn_normalize_case()をコールし、DNを正規化してすべての文字を小文字に変換する必要があります。

DNがローカル・データベースのサフィックスと同じであるかどうかを判別する場合は、かわりにslapi_dn_isbesuffix_norm()関数をコールします。

15.3.64.1 構文

#include "slapi-plugin.h"
int slapi_dn_issuffix( const char *dn, const char *suffix );

15.3.64.2 パラメータ

この関数は、次のパラメータを取ります。

dn

チェックするDNです。

suffix

DNと比較するサフィックスです。

15.3.64.3 戻り値

この関数は、指定されたDNが指定されたサフィックスと同じ場合は1を戻し、DNがサフィックスと同じでない場合は0を戻します。

15.3.64.4 関連項目

slapi_dn_isparent()

15.3.65 slapi_dn_normalize()

識別名(DN)を正規のフォーマット(先頭または後続のスペースなし、コンポーネント間のスペースなしおよび等号の前後にスペースなし)に変換します。たとえば、次のDNがあるとします。

cn = Moxie Cross , ou = Engineering , dc = example , dc = com

この関数は次の文字列を戻します。

cn=Moxie Cross,ou=Engineering,dc=example,dc=com

15.3.65.1 構文

#include "slapi-plugin.h"
char *slapi_dn_normalize( char *dn );

15.3.65.2 パラメータ

この関数は、次のパラメータを取ります。

dn

正規化するDNです。

15.3.65.3 戻り値

この関数は、正規化されたDNを戻します。dn引数として渡された変数も適宜変換されることに注意してください。

15.3.66 slapi_dn_normalize_case()

識別名(DN)を正規のフォーマットに変換し、すべての文字を小文字に変換します。この関数のコールは、slapi_dn_normalize()関数に続けてslapi_dn_ignore_case()関数をコールするのと同じ効果があります。

15.3.66.1 構文

#include "slapi-plugin.h"
char *slapi_dn_normalize_case( char *dn );

15.3.66.2 パラメータ

この関数は、次のパラメータを取ります。

dn

正規化して小文字に変換するDNです。

15.3.66.3 戻り値

この関数は、すべての文字が小文字の正規化されたDNを戻します。dn引数として渡された変数も適宜変換されることに注意してください。

15.3.67 slapi_dn_normalize_to_end()

DN値の一部(具体的にはdnが参照する部分からendが参照する部分まで)を正規化します。

このルーチンは、関数からの戻り時に、dnが参照する正規化ビットをNULL文字で終端しません。

引数の最後にNULLがある場合、正規化されたDNのNULL文字終端化を除き、このルーチンはslapi_dn_normalize()と基本的に同じ処理を行います。

15.3.67.1 構文

#include "slapi-plugin.h"
char *slapi_dn_normalize_to_end( char *dn, char *end );

15.3.67.2 パラメータ

この関数は、次のパラメータを取ります。

dn

正規化対象のDN値

end

dn内のDN値から正規化される部分の最後までのポインタです。この引数がNULLの場合、dn内のDN値は全体的に正規化されます。

15.3.67.3 戻り値

この関数は、正規化されたdnの終端へのポインタを戻します。つまり、正規化される部分は* dnから* (returnValue - 1)までです。

15.3.67.4 関連項目

slapi_dn_normalize()

15.3.68 slapi_dn_parent()

エントリの親の識別名(DN)のコピーを取得します。この関数をコールする前にslapi_dn_normalize_case()をコールし、DNを正規化してすべての文字を小文字に変換する必要があります。

DNがローカル・データベースのサフィックスであるかどうかをチェックする場合は、かわりにslapi_dn_beparent()関数をコールします。

15.3.68.1 構文

#include "slapi-plugin.h"
char *slapi_dn_parent( char *dn );

15.3.68.2 パラメータ

この関数は、次のパラメータを取ります。

dn

親を検索するエントリのDNです。

15.3.68.3 戻り値

この関数は、親エントリのDNを戻します。指定されたDNがNULLの場合、DNが空文字列の場合またはDNに親がない場合(o=example.comなど)、この関数はNULLを戻します。

15.3.69 slapi_dn_plus_rdn()

RDNをDNに追加します。

15.3.69.1 構文

#include "slapi-plugin.h"
char *slapi_dn_plus_rdn( const char *dn, const char *rdn);

15.3.69.2 パラメータ

この関数は、次のパラメータを取ります。

dn

新しいRDNの追加先となるDN値です。

rdn

dn内のDN値に追加されるRDN値です。

15.3.69.3 戻り値

この関数は、rdn内のRDN値をdn内のDN値に追加して作成された新しいDNを戻します。

15.3.69.4 メモリーに関する注意事項

戻された文字列は、slapi_ch_free_string()を使用して解放する必要があります。

15.3.69.5 関連項目

slapi_sdn_add_rdn()

15.3.70 slapi_dup_control()

LDAPControlの割当て済コピーを作成します。

15.3.70.1 構文

#include "slapi-plugin.h"
 LDAPControl * slapi_dup_control( LDAPControl const *ctrl );

15.3.70.2 パラメータ

この関数は、次のパラメータを取ります。

ctrl

内容を複製するLDAPControl構造体へのポインタです。

15.3.70.3 戻り値

この関数は、正常終了した場合は割り当てられたLDAPControl構造体へのポインタを戻し、エラーが発生した場合はNULLを戻します。

15.3.70.4 説明

この関数は、LDAPControl構造体の内容を複製します。LDAPControl内のすべてのフィールドが、割り当てられた新しい構造体にコピーされ、新しい構造体へのポインタが戻されます。

15.3.70.5 メモリーに関する注意事項

戻された構造体は、LDAP API関数のldap_control_free(3LDAP)をコールして解放する必要があります。

15.3.70.6 関連項目

ldap_control_free(3LDAP)

15.3.71 slapi_entry2mods()

Slapi_EntryからLDAPModの配列を作成します。

15.3.71.1 構文

#include "slapi-plugin.h"
 int slapi_entry2mods(const Slapi_Entry *e,
    char **dn, LDAPMod ***attrs);

15.3.71.2 パラメータ

この関数は、次のパラメータを取ります。

e

Slapi_Entryへのポインタです。

dn

戻り時にエントリDNに設定されるchar*のアドレスです。

attrs

戻り時にエントリ属性のコピーに設定されるLDAPModの配列のアドレスです。

15.3.71.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 正常終了した場合は0

  • 正常終了しなかった場合は0以外

15.3.71.4 説明

この関数は、Slapi_EntryからタイプLDAP_MOD_ADDLDAPModの配列を作成します。この構造体は、プラグイン内部から、クライアントとしてLDAPの追加操作や変更操作を実行する場合などに有効です。

15.3.71.5 関連項目

slapi_mods2entry()

15.3.72 slapi_entry2str()

LDAPエントリのLDIF文字列表現を生成します。

15.3.72.1 構文

#include "slapi-plugin.h"
 char *slapi_entry2str( Slapi_Entry const *e, int *len );

15.3.72.2 パラメータ

この関数は、次のパラメータを取ります。

e

LDIF文字列に変換するエントリです。

len

戻されるLDIF文字列の長さです。

15.3.72.3 戻り値

指定したエントリのLDIF文字列表現を戻します。エラーが発生した場合はNULLを戻します。

15.3.72.4 説明

この関数は、次のフォーマットに準拠したLDIF文字列値を生成します。

dn: dn\n
 [attr: value\n]*

次に例を示します。

dn: uid=jdoe, ou=People, o=example.com
cn: Jane Doe
sn: Doe
...

LDIFフォーマットの文字列表現をSlapi_Entryデータ型のエントリに変換するには、slapi_str2entry()関数をコールします。

15.3.72.5 メモリーに関する注意事項

文字列を使用する必要がなくなった場合は、slapi_ch_free_string()関数をコールして、メモリーから文字列を解放する必要があります。

15.3.73 slapi_entry2str_with_options()

エントリのLDIF文字列表現を生成します。この関数の動作はslapi_str2entry()とほぼ同じです。ただし、この関数では出力オプションを指定できます。

15.3.73.1 構文

#include "slapi-plugin.h"
 char *slapi_entry2str_with_options( Slapi_Entry const *e,
   int *len, int options );

15.3.73.2 パラメータ

この関数は、次のパラメータを取ります。

e

LDIF文字列に変換するエントリです。

len

この関数から戻されるLDIF文字列の長さです。

options

文字列の変換方法を指定するオプション・セットです。

15.3.73.3 optionsパラメータ

この関数をコールする場合は、次の任意のオプションのORを取ることができます。

フラグ値 説明
SLAPI_DUMP_STATEINFO

これは、レプリケーションのみで内部的に使用されます。これを使用すると、マルチマスター・レプリケーションで使用する内部データにアクセスできます。

SLAPI_DUMP_UNIQUEID

このオプションは、レプリカの初期化に使用されるLDIFファイルの作成時に使用します。各エントリにnsuniqueID操作属性が含まれます。

SLAPI_DUMP_NOOPATTRS

デフォルトでは、特定の操作属性(creatorNamemodifiersNamecreateTimestampmodifyTimestampなど)が出力に含まれる場合があります。このオプションを指定すると、操作属性が含まれなくなります。

SLAPI_DUMP_NOWRAP

デフォルトでは、LDIF仕様の定義に従って行が折り返されます。このオプションを指定すると、行の折返しが無効になります。


15.3.73.4 戻り値

この関数は、指定したエントリのLDIF文字列表現を戻し、エラーが発生した場合はNULLを戻します。

15.3.73.5 説明

この関数は、次の構文に準拠したLDIF文字列値を生成します。

dn: dn\n
 [attr: value\n]*

次に例を示します。

dn: uid=jdoe, ou=People, o=example.com
cn: Jane Doe
sn: Doe
...

LDIF文字列フォーマットで表現されたエントリをSlapi_Entryデータ型を使用するLDAPエントリに変換するには、slapi_str2entry()関数をコールします。

15.3.73.6 メモリーに関する注意事項

文字列を使用する必要がなくなった場合は、slapi_ch_free_string()関数をコールして、メモリーから文字列を解放する必要があります。

15.3.73.7 関連項目

slapi_entry2str()

slapi_str2entry()

15.3.74 slapi_entry_add_rdn_values()

エントリの相対識別名(RDN)内のコンポーネントを属性値としてエントリに追加します。(たとえば、エントリのRDNがuid=bjensenの場合、この関数は属性値としてuid=bjensenをエントリに追加します。)

15.3.74.1 構文

#include "slapi-plugin.h"
 int slapi_entry_add_rdn_values( Slapi_Entry *e );

15.3.74.2 パラメータ

この関数は、次のパラメータを取ります。

e

RDN属性を追加するエントリです。

15.3.74.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • エントリに値が正常に追加された場合はLDAP_SUCCESS。また、この関数は、エントリがNULLの場合、エントリのDNがNULLの場合またはエントリのRDNがNULLの場合にもLDAP_SUCCESSを戻します。

  • エントリのDNを解析できない場合はLDAP_INVALID_DN_SYNTAX

15.3.74.4 説明

RDNに対応する属性タイプに、等価性の点でRDN値と一致する値がすでに存在する場合、値は追加されません。ただし、この関数はRDNに含まれない他の属性タイプを検査しませんが、その値はRDN値と等価的に一致する可能性があります。

15.3.74.5 メモリーに関する注意事項

エントリがユーザーによって割り当てられた場合は、slapi_entry_free()を使用して、メモリーからエントリを解放してください。

15.3.74.6 関連項目

slapi_entry_free()

15.3.75 slapi_entry_add_string()

エントリの属性に文字列値を追加します。

15.3.75.1 構文

#include "slapi-plugin.h"
 int slapi_entry_add_string (Slapi_Entry *e, const char *type,
    const char *value);

15.3.75.2 パラメータ

この関数は、次のパラメータを取ります。

e

文字列値を追加するエントリです。

type

文字列値を追加する属性です。

value

追加する文字列値です。

15.3.75.3 戻り値

この関数は、正常終了した場合は0を戻し、エラーが発生した場合はそれ以外の値を戻します。

15.3.75.4 説明

この関数は、エントリの既存の属性値に文字列値を追加します。指定された属性がエントリに存在しない場合は、指定した文字列値を使用して属性が作成されます。

この関数は、属性に値が存在するかどうかをチェックしません。この関数を使用する前にslapi_entry_attr_delete()を使用してください。

この関数は、追加される値が既存の値と重複するかどうかもチェックしません

15.3.75.5 メモリーに関する注意事項

このルーチンは、パラメータvalueのコピーを作成します。valueNULLの場合、エントリは変更されません。

15.3.76 slapi_entry_add_value()

指定されたSlapi_Valueデータ値をエントリの属性に追加します。

15.3.76.1 構文

#include "slapi-plugin.h"
 int slapi_entry_add_value (Slapi_Entry *e, const char *type,
    const Slapi_Value *value);

15.3.76.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を追加するエントリです。

type

値を追加する属性です。

value

エントリに追加するSlapi_Valueデータ値です。

15.3.76.3 戻り値

正常終了した場合は0を戻し、エラーが発生した場合はそれ以外の値を戻します。

15.3.76.4 説明

この関数は、エントリの既存の属性値にSlapi_Valueデータ値を追加します。指定された属性がエントリに存在しない場合は、指定したSlapi_Valueを使用して属性が作成されます。

この関数は、追加される値が既存の値と重複するかどうかをチェックしません

15.3.76.5 メモリーに関する注意事項

このルーチンは、パラメータvalueのコピーを作成します。valueNULLの場合、エントリは変更されません。

15.3.77 slapi_entry_add_values_sv()

エントリ内の指定された属性にSlapi_Valueデータ値の配列を追加します。

15.3.77.1 構文

#include "slapi-plugin.h"
 int slapi_entry_add_values_sv( Slapi_Entry *e, const char *type,
    Slapi_Value **vals );

15.3.77.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を追加するエントリです。

type

値を追加する属性タイプです。

vals

追加するSlapi_Valueデータ値の配列です。

15.3.77.3 戻り値

次のいずれかの値を戻します。

  • 属性にSlapi_Value配列が正常に追加された場合はLDAP_SUCCESS

  • 追加しようとしている値が属性内の既存の値と重複している場合はLDAP_TYPE_OR_VALUE_EXISTS

  • 属性内に既存の重複値が存在する場合はLDAP_OPERATIONS_ERROR

15.3.77.4 説明

この関数は、Slapi_Valueデータ値の配列を属性に追加します。属性が存在しない場合は、属性が作成されてSlapi_Value配列に格納されている値が設定されます。

非推奨のslapi_entry_add_values()関数は、この関数で置き換えられます。この関数は、berval属性値のかわりにSlapi_Value属性値を使用します。

15.3.77.5 メモリーに関する注意事項

このルーチンは、パラメータvalsのコピーを作成します。valsにはNULLを指定できます。

15.3.78 slapi_entry_add_valueset()

エントリ内の指定された属性にSlapi_ValueSetデータ値を追加します。

15.3.78.1 構文

#include "slapi-plugin.h"
 int slapi_entry_add_valueset(Slapi_Entry *e, const char *type,
    Slapi_ValueSet *vs);

15.3.78.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を追加するエントリです。

type

値を追加する属性タイプです。

vs

エントリに追加するSlapi_ValueSetデータ値です。

15.3.78.3 戻り値

正常終了した場合は0を戻し、エラーが発生した場合はそれ以外の値を戻します。

15.3.78.4 説明

この関数は、エントリの属性に一連の値を追加します。追加される値の形式はSlapi_ValueSetデータ型です。指定された属性がエントリに格納されていない場合は、指定したSlapi_ValueSet値を使用して属性が作成されます。

15.3.78.5 メモリーに関する注意事項

このルーチンは、パラメータvsのコピーを作成します。vsにはNULLを指定できます。

15.3.79 slapi_entry_alloc()

データ型Slapi_Entryの新しいエントリにメモリーを割り当てます。

15.3.79.1 構文

#include "slapi-plugin.h"
 Slapi_Entry *slapi_entry_alloc();

15.3.79.2 戻り値

データ型Slapi_Entryの新しく割り当てられたエントリへのポインタを戻します。領域を割り当てられない場合(仮想メモリーが足りない場合など)は、slapdプログラムが停止します。

15.3.79.3 説明

この関数は、空のSlapi_Entry構造体を戻します。

15.3.79.4 メモリーに関する注意事項

エントリを使用しなくなった場合は、slapi_entry_free()関数をコールして、メモリーからエントリを解放する必要があります。

15.3.80 slapi_entry_attr_delete()

エントリから属性(および関連するすべての値)を削除します。

15.3.80.1 構文

#include "slapi-plugin.h"
int slapi_entry_attr_delete( Slapi_Entry *e, const char *type );

15.3.80.2 パラメータ

この関数は、次のパラメータを取ります。

e

属性を削除するエントリです。

type

削除する属性タイプです。

15.3.80.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 正常終了した場合は0

  • 指定された属性がエントリに含まれていない場合は1

  • エラーが発生した場合は-1

15.3.81 slapi_entry_attr_find()

指定された属性がエントリに含まれているかどうかを判別します。エントリに属性が含まれている場合、この関数はその属性へのポインタを戻します。

15.3.81.1 構文

#include "slapi-plugin.h"
 int slapi_entry_attr_find( const Slapi_Entry *e, const char *type,
    Slapi_Attr **attr );

15.3.81.2 パラメータ

この関数は、次のパラメータを取ります。

e

チェックするエントリです。

type

チェックする属性の名前です。

attr

属性へのポインタです(その属性がエントリに含まれている場合)。

15.3.81.3 戻り値

この関数は、指定された属性がエントリに含まれている場合は0を戻し、それ以外の場合は-1を戻します。

15.3.81.4 メモリーに関する注意事項

戻されたattrは解放しないでください。これは、内部エントリ・データ構造へのポインタです。通常は、slapi_attr_dup()を使用して、戻されたattrのコピーを作成し、attrへのポインタの使用中にエントリが解放された場合のぶら下がりポインタを回避してください。

15.3.81.5 関連項目

slapi_attr_dup()

15.3.82 slapi_entry_attr_get_charptr()

エントリにある属性の最初の値を文字列として取得します。

15.3.82.1 構文

#include "slapi-plugin.h"
char *slapi_entry_attr_get_charptr(const Slapi_Entry* e,
    const char *type);

15.3.82.2 パラメータ

この関数は、次のパラメータを取ります。

e

文字列値を取得するエントリです。

type

値を取得する属性タイプです。

15.3.82.3 戻り値

この関数は、属性にある最初の値のコピーを戻します。エントリに属性が含まれていない場合はNULLを戻します。

15.3.82.4 メモリーに関する注意事項

この値を使用しなくなった場合は、slapi_ch_free()関数をコールして、メモリーから値を解放する必要があります。

15.3.83 slapi_entry_attr_get_int()

エントリにある属性の最初の値を整数として取得します。

15.3.83.1 構文

#include "slapi-plugin.h"
int slapi_entry_attr_get_int(const Slapi_Entry* e,const char *type);

15.3.83.2 パラメータ

この関数は、次のパラメータを取ります。

e

整数値を取得するエントリです。

type

値を取得する属性タイプです。

15.3.83.3 戻り値

属性の最初の値を整数に変換して戻すか、エントリに属性が含まれていない場合は0を戻します。

15.3.84 slapi_entry_attr_get_long()

エントリにある属性の最初の値をLong整数データ型として取得します。

15.3.84.1 構文

#include "slapi-plugin.h"
 long slapi_entry_attr_get_long( const Slapi_Entry* e,
    const char *type);

15.3.84.2 パラメータ

この関数は、次のパラメータを取ります。

e

Long整数値を取得するエントリです。

type

値を取得する属性タイプです。

15.3.84.3 戻り値

この関数は、属性の最初の値をlong型に変換して戻します。指定された属性がエントリに含まれていない場合は0を戻します。

15.3.85 slapi_entry_attr_get_uint()

エントリにある属性の最初の値を符号なし整数データ型として取得します。

15.3.85.1 構文

#include "slapi-plugin.h"
 unsigned int slapi_entry_attr_get_uint( const Slapi_Entry* e,
    const char *type);

15.3.85.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を取得するエントリです。

type

値を取得する属性タイプです。

15.3.85.3 戻り値

この関数は、属性の最初の値をunsigned integerに変換して戻します。指定された属性がエントリに含まれていない場合は0を戻します。

15.3.86 slapi_entry_attr_get_ulong()

エントリにある属性の最初の値を符号なしLong整数データ型として取得します。

15.3.86.1 構文

#include "slapi-plugin.h"
 unsigned long slapi_entry_attr_get_ulong( const Slapi_Entry* e,
    const char *type);

15.3.86.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を取得するエントリです。

type

値を取得する属性タイプです。

15.3.86.3 戻り値

この関数は、属性の最初の値をunsigned longに変換して戻します。指定された属性がエントリに含まれていない場合は0を戻します。

15.3.87 slapi_entry_attr_hasvalue()

この関数は非推奨です。指定された値を文字列として既存の値と比較し、指定された値がエントリの属性に含まれているかどうかを判別します。等価一致ルールを使用した比較は行いません。

15.3.87.1 構文

#include "slapi-plugin.h"
 int slapi_entry_attr_hasvalue(Slapi_Entry *e, const char *type,
    const char *value);

15.3.87.2 パラメータ

この関数は、次のパラメータを取ります。

e

チェックするエントリです。

type

指定された値をテストする属性タイプです。

value

属性内で検索する値です。

15.3.87.3 戻り値

次のいずれかの値を戻します。

  • 指定された値が属性に含まれている場合は1

  • 指定された値が属性に含まれていない場合は0

15.3.87.4 メモリーに関する注意事項

valueにはNULLを指定しないでください。

15.3.88 slapi_entry_attr_merge_sv()

エントリ内の既存の属性値にSlapi_Valueデータ値の配列を追加します。属性が存在しない場合は、指定したSlapi_Valueを使用して属性が作成されます。

15.3.88.1 構文

#include "slapi-plugin.h"
 int slapi_entry_attr_merge_sv( Slapi_Entry *e, const char *type,
    Slapi_Value **vals );

15.3.88.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を追加するエントリです。

type

値を追加する属性です。

vals

追加するSlapi_Valueデータ値の配列です。

15.3.88.3 戻り値

正常終了した場合は0を戻し、エラーが発生した場合はそれ以外の値を戻します。

15.3.88.4 説明

非推奨のslapi_entry_attr_merge()関数は、この関数で置き換えられます。この関数は、berval属性値のかわりにSlapi_Value属性値を使用します。

15.3.88.5 メモリーに関する注意事項

この関数は、パラメータvalsのコピーを作成します。valsにはNULLを指定できます。

15.3.89 slapi_entry_attr_replace_sv()

指定したSlapi_Valueデータ値で属性の値を置換します。

15.3.89.1 構文

#include "slapi-plugin.h"
 int slapi_entry_attr_replace_sv( Slapi_Entry *e, const char *type,
     Slapi_Value **vals );

15.3.89.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を置換するエントリです。

type

置換された値を格納する属性タイプです。

vals

属性の既存の値を置換する必要のあるSlapi_Value値が格納されている配列です。

15.3.89.3 戻り値

この関数は、正常終了した場合は0を戻し、エラーが発生した場合はそれ以外の値を戻します。

15.3.89.4 説明

この関数は、指定されたエントリの既存の属性値を単一のSlapi_Valueデータ値で置換します。まずエントリから既存の属性が削除され、次に、指定された新しい値で置換されます。

非推奨のslapi_entry_attr_replace()関数は、この関数で置き換えられます。この関数は、berval属性値のかわりにSlapi_Value属性値を使用します。

15.3.89.5 メモリーに関する注意事項

この関数は、パラメータvalsのコピーを作成します。valsにはNULLを指定できます。

15.3.90 slapi_entry_attr_set_charptr()

エントリの属性の1つ以上の値を、指定された文字列値で置換します。

15.3.90.1 構文

#include "slapi-plugin.h"
 void slapi_entry_attr_set_charptr(Slapi_Entry* e, const char *type,
    const char *value);

15.3.90.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を設定するエントリです。

type

値を設定する属性タイプです。

value

属性に割り当てる文字列値です。

15.3.90.3 メモリーに関する注意事項

この関数は、パラメータvaluesのコピーを作成します。valuesにはNULLを指定できます。その場合、この関数はほぼslapi_entry_attr_delete()と同じになります。

15.3.90.4 関連項目

slapi_entry_attr_delete()

15.3.91 slapi_entry_attr_set_int()

エントリの属性の1つ以上の値を、指定された整数データ値で置換します。

15.3.91.1 構文

#include "slapi-plugin.h"
 void slapi_entry_attr_set_int(Slapi_Entry* e, const char *type,
    int l);

15.3.91.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を設定するエントリです。

type

値を設定する属性タイプです。

l

属性に割り当てる整数値です。

15.3.91.3 説明

この関数は、属性の1つ以上の値を、指定したinteger値で置換します。属性が存在しない場合は、指定した整数値を使用して属性が作成されます。

15.3.92 slapi_entry_attr_set_long()

エントリの属性の1つ以上の値を、指定されたLong整数データ型値で置換します。

15.3.92.1 構文

#include "slapi-plugin.h"
void slapi_entry_attr_set_long(Slapi_Entry* e, const char *type,
    unsigned long l);

15.3.92.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を設定するエントリです。

type

値を設定する属性タイプです。

l

属性に割り当てるLong整数値です。

15.3.93 slapi_entry_attr_set_uint()

エントリの属性の1つ以上の値を、指定された符号なし整数データ型値で置換します。

15.3.93.1 構文

#include "slapi-plugin.h"
 void slapi_entry_attr_set_uint(Slapi_Entry* e, const char *type,
    unsigned int l);

15.3.93.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を設定するエントリです。

type

値を設定する属性タイプです。

l

属性に割り当てる符号なし整数値です。

15.3.93.3 説明

この関数は、属性の1つ以上の値を、指定したunsigned integer値で置換します。属性が存在しない場合は、指定した符号なし整数値を使用して属性が作成されます。

15.3.94 slapi_entry_attr_set_ulong()

エントリの属性の1つ以上の値を、指定された符号なしLong整数データ型値で置換します。

15.3.94.1 構文

#include "slapi-plugin.h"
void slapi_entry_attr_set_ulong(Slapi_Entry* e, const char *type,
    unsigned long l);

15.3.94.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を設定するエントリです。

type

値を設定する属性タイプです。

l

属性に割り当てる符号なしLong整数値です。

15.3.94.3 説明

この関数は、属性の1つ以上の値を、指定したunsigned long値で置換します。属性が存在しない場合は、指定した符号なしLong整数値を使用して属性が作成されます。

15.3.95 slapi_entry_delete_string()

エントリの属性から文字列値を削除します。

15.3.95.1 構文

#include "slapi-plugin.h"
 int slapi_entry_delete_string(Slapi_Entry *e, const char *type,
    const char *value);

15.3.95.2 パラメータ

この関数は、次のパラメータを取ります。

e

文字列を削除するエントリです。

type

文字列を削除する属性タイプです。

value

削除する文字列値です。

15.3.95.3 戻り値

正常終了した場合は0を戻し、エラーが発生した場合はそれ以外の値を戻します。

15.3.96 slapi_entry_delete_values_sv()

エントリの属性からSlapi_Valueデータ値の配列を削除します。

15.3.96.1 構文

#include "slapi-plugin.h"
 int slapi_entry_delete_values_sv( Slapi_Entry *e, const char *type,
    Slapi_Value **vals );

15.3.96.2 パラメータ

この関数は、次のパラメータを取ります。

e

値を削除するエントリです。

type

値を削除する属性です。

vals

削除するSlapi_Valueデータ値の配列です。

15.3.96.3 戻り値

指定された属性およびSlapi_Valueデータ値の配列がエントリから削除された場合は、LDAP_SUCCESSを戻します。

指定された属性にNULL値が含まれている場合は属性リストからその属性が削除され、LDAP_NO_SUCH_ATTRIBUTEを戻します。また、指定されたエントリの属性リストに属性が見つからない場合は、LDAP_NO_SUCH_ATTRIBUTEを戻します。

このコール処理の間に処理エラーが発生した場合は(重複値の検出など)、LDAP_OPERATIONS_ERRORを戻します。この場合は、サポート・サービスに問題を報告してください。

15.3.96.4 説明

この関数は、属性/値のセットをエントリから削除します。属性およびそのSlapi_Valueデータ値の両方がエントリから削除されることに注意してください。値がNULLSlapi_Valueを指定した場合は、指定した属性がエントリから削除されます。いずれの場合もLDAP_SUCCESSが戻されます。

非推奨のslapi_entry_delete_values()関数は、この関数で置き換えられます。この関数は、berval属性値のかわりにSlapi_Value属性値を使用します。

15.3.96.5 メモリーに関する注意事項

valsパラメータにはNULLを指定できます。その場合、この関数は何も実行しません。

15.3.97 slapi_entry_dup()

エントリおよびそのDNと属性のコピーを作成します。

15.3.97.1 構文

#include "slapi-plugin.h"
 Slapi_Entry *slapi_entry_dup( const Slapi_Entry *e );

15.3.97.2 パラメータ

この関数は、次のパラメータを取ります。

e

コピーするエントリです。

15.3.97.3 戻り値

この関数は、エントリの新しいコピーを戻します。構造体を複製できない場合(仮想メモリーが足りない場合など)は、slapdプログラムが停止します。

15.3.97.4 説明

この関数は、既存のSlapi_Entry構造体のコピーを戻します。他のフロントエンド関数をコールすると、このエントリのDNおよび属性を変更できます。

15.3.97.5 メモリーに関する注意事項

エントリを使用しなくなった場合は、slapi_entry_free()関数をコールして、メモリーからエントリを解放する必要があります。

15.3.97.6 関連項目

slapi_entry_alloc()

slapi_entry_free()

15.3.98 slapi_entry_first_attr()

エントリの最初の属性を検索します。エントリの属性を繰り返して処理するには、この関数とslapi_entry_next_attr()を使用します。

15.3.98.1 構文

#include "slapi-plugin.h"
 int slapi_entry_first_attr( Slapi_Entry *e, Slapi_Attr **attr );

15.3.98.2 パラメータ

この関数は、次のパラメータを取ります。

e

属性を取得するエントリです。

attr

エントリの最初の属性へのポインタです。

15.3.98.3 戻り値

正常終了した場合は0を戻し、エラーが発生した場合はそれ以外の値を戻します。

15.3.98.4 メモリーに関する注意事項

戻されたattrは解放しないでください。これは、内部エントリ・データ構造へのポインタです。コピーが必要な場合は、slapi_attr_dup()を使用してください。

15.3.98.5 関連項目

slapi_attr_dup()

15.3.99 slapi_entry_free()

エントリおよびそのDNと属性をメモリーから解放します。

15.3.99.1 構文

#include "slapi-plugin.h"
 void slapi_entry_free( Slapi_Entry *e );

15.3.99.2 パラメータ

この関数は、次のパラメータを取ります。

e

解放するエントリです。NULLの場合は処理が行われません。

15.3.99.3 説明

slapi_entry_alloc()関数またはslapi_entry_dup()関数を使用して割り当てられたエントリを解放するには、この関数をコールします。

15.3.99.4 メモリーに関する注意事項

エントリを解放するには、slapi_ch_free()またはfree()ではなく、常にこの関数を使用します。

15.3.99.5 関連項目

slapi_entry_alloc()

slapi_entry_dup()

15.3.100 slapi_entry_get_dn()

指定されたエントリの識別名(DN)を取得します。

15.3.100.1 構文

#include "slapi-plugin.h"
char *slapi_entry_get_dn( Slapi_Entry *e );

15.3.100.2 パラメータ

この関数は、次のパラメータを取ります。

e

DNを取得するエントリです。

15.3.100.3 戻り値

この関数は、エントリのDNを戻します。これは、DNのコピーではなく、エントリの現在のDNへのポインタを戻すことに注意してください。slapi_entry_set_dn()をコールして置換する場合を除き、DNを解放する必要はありません。

15.3.100.4 メモリーに関する注意事項

slapi_entry_set_dn()を使用してDNを置換する場合は、slapi_ch_free()を使用してください。

15.3.100.5 関連項目

slapi_ch_free()

slapi_entry_set_dn()

15.3.101 slapi_entry_get_dn_const()

指定したエントリのDN値をconstとして戻します。

15.3.101.1 構文

#include "slapi-plugin.h"
 const char *slapi_entry_get_dn_const( const Slapi_Entry *e );

15.3.101.2 パラメータ

この関数は、次のパラメータを取ります。

e

定数としてDNを取得するエントリです。

15.3.101.3 戻り値

この関数は、指定したエントリのDNを戻します。DNconstとして戻されます。このDN値は変更できません。Slapi_DNオブジェクトのDNNULLである場合は、Slapi_DNのNDN値が戻されます。

15.3.101.4 メモリーに関する注意事項

この値は解放しないでください。

15.3.102 slapi_entry_get_ndn()

指定したエントリから正規化されたDNを戻します。

15.3.102.1 構文

#include "slapi-plugin.h"
 char *slapi_entry_get_ndn( Slapi_Entry *e );

15.3.102.2 パラメータ

この関数は、次のパラメータを取ります。

e

正規化されたDNを取得するエントリです。

15.3.102.3 戻り値

この関数は、指定したエントリから正規化されたDNを戻します。指定したエントリに正規化されたDNが含まれていない場合は、この関数の処理によってDNが作成されます。

15.3.102.4 メモリーに関する注意事項

この値は解放しないでください。

15.3.103 slapi_entry_get_sdn()

指定したエントリからSlapi_DNオブジェクトを戻します。

15.3.103.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_entry_get_sdn( Slapi_Entry *e );

15.3.103.2 パラメータ

この関数は、次のパラメータを取ります。

e

Slapi_DNオブジェクトを取得するエントリです。

15.3.103.3 戻り値

この関数は、指定したエントリからSlapi_DNオブジェクトを戻します。

15.3.103.4 メモリーに関する注意事項

この値は解放しないでください。コピーが必要な場合は、slapi_sdn_dup()を使用してください。

15.3.103.5 関連項目

slapi_sdn_dup()

15.3.104 slapi_entry_get_sdn_const()

指定したエントリからSlapi_DNオブジェクトの値をconstとして戻します。

15.3.104.1 構文

#include "slapi-plugin.h"
 const Slapi_DN *slapi_entry_get_sdn_const ( const Slapi_Entry *e );

15.3.104.2 パラメータ

この関数は、次のパラメータを取ります。

e

Slapi_DNオブジェクトを取得するエントリです。

15.3.104.3 戻り値

指定したエントリからSlapi_DNオブジェクトの値をconstとして戻します。

15.3.104.4 メモリーに関する注意事項

この値は解放しないでください。コピーが必要な場合は、slapi_sdn_dup()を使用してください。

15.3.104.5 関連項目

slapi_sdn_dup()

15.3.105 slapi_entry_get_uniqueid()

エントリの一意のID値を取得します。

15.3.105.1 構文

#include "slapi-plugin.h"
 const char *slapi_entry_get_uniqueid( const Slapi_Entry *e );

15.3.105.2 パラメータ

この関数は、次のパラメータを取ります。

e

一意のIDを取得するエントリです。

15.3.105.3 戻り値

この関数は、指定されたエントリの一意のID値を戻します。

15.3.105.4 メモリーに関する注意事項

この値は解放しないでください。コピーが必要な場合は、slapi_ch_strdup()を使用してください。

15.3.105.5 関連項目

slapi_ch_strdup()

15.3.106 slapi_entry_has_children()

この関数は、指定されたエントリが存在するバックエンドに、そのエントリの子エントリがあるかどうかを判別します。

15.3.106.1 構文

#include "slapi-plugin.h"
 int slapi_entry_has_children( const Slapi_Entry *e );

15.3.106.2 パラメータ

この関数は、次のパラメータを取ります。

e

子エントリをテストするエントリです。

15.3.106.3 戻り値

この関数は、指定したエントリが存在するバックエンドにそのエントリの子エントリがある場合は1を戻し、それ以外の場合は0を戻します。サブ・サフィックスが別のバックエンドにある場合、この関数はそのサブ・サフィックスに含まれる子を検索しないことに注意してください。

15.3.107 slapi_entry_init()

指定したDNおよび属性値のペアでエントリの値を初期化します。

15.3.107.1 構文

#include "slapi-plugin.h"
void slapi_entry_init(Slapi_Entry *e, char *dn, Slapi_Attr *a);

15.3.107.2 パラメータ

この関数は、次のパラメータを取ります。

e

初期化するエントリです。

dn

初期化しているエントリのDNです。

a

Slapi_Attrデータ値として指定した、属性値ペアの初期化リストです。

15.3.107.3 説明

この関数は、エントリの属性および対応する属性値を初期化します。また、処理中にはエントリの一意のIDがNULLに設定され、フラグ値が0に設定されます。

Slapi_Entryポインタを初期化するには、この関数を使用します。

15.3.107.4 メモリーに関する注意事項

この関数は、常にslapi_entry_alloc()の後で使用する必要があります。その逆では使用しないでください。次に例を示します。

Slapi_Entry *e = slapi_entry_alloc();
slapi_entry_init(e, NULL, NULL);

エントリのDNを設定するには、次の関数を実行します。

slapi_sdn_set_dn_passin(slapi_entry_get_sdn(e), dn);

この場合、dn引数はコピーされませんが、関数では使用されます。引数をコピーする方法は、次の例を参照してください。

char *dn = slapi_ch_strdup(some_dn);
Slapi_Entry *e = slapi_entry_alloc();
slapi_entry_init(e, dn, NULL);

このコンテキストではdnが解放されませんが、slapi_entry_free()がコールされると最終的に解放されます。

15.3.108 slapi_entry_isroot()

指定されたDNを持つエントリが、ルートDN (ディレクトリ・スーパーユーザー)であるかどうかを判別します。

15.3.108.1 構文

#include "slapi-plugin.h"
into slapi_entry_isroot( const char *dn );

15.3.108.2 パラメータ

この関数は、次のパラメータを取ります。

dn

チェックするエントリのDNです。

15.3.108.3 戻り値

このファンクションは、次の値のいずれかを戻します。

0

指定されたDNを持つエントリは、ルート・ユーザー(ディレクトリ・スーパーユーザー)のエントリです。

1

指定されたDNを持つエントリは、ルート・ユーザーのエントリではありません。

15.3.109 slapi_entry_merge_values_sv()

エントリ内の指定された属性にSlapi_Valueデータ値の配列をマージ(追加)します。指定された属性がエントリに含まれていない場合は、指定した値を使用して属性が作成されます。

15.3.109.1 構文

#include "slapi-plugin.h"
 int slapi_entry_merge_values_sv( Slapi_Entry *e, const char *type,
    Slapi_Value **vals );

15.3.109.2 パラメータ

この関数は、次のパラメータを取ります。

e

値をマージするエントリです。

type

マージする値を含む属性タイプです。

vals

エントリにマージする値です。値の型はSlapi_Valueです。

15.3.109.3 戻り値

この関数は、LDAP_SUCCESSまたはLDAP_NO_SUCH_ATTRIBUTEを戻します。

15.3.109.4 説明

この関数は、属性に格納されている既存の値にSlapi_Valueデータ値を追加します。属性タイプが存在しない場合は作成されます。

指定された属性がエントリに存在する場合、この関数は指定された値をマージしてLDAP_SUCCESSを戻します。エントリに属性が見つからない場合は、指定されたSlapi_Valueを使用して属性が作成され、LDAP_NO_SUCH_ATTRIBUTEが戻されます。

この関数でエラーが発生した場合、typeの値は未確定の状態でeへのポインタ内に残されたままであることに注意してください。現在の値セットは切り捨てられる場合があります。

15.3.109.5 メモリーに関する注意事項

この関数は、valsのコピーを作成します。valsにはNULLを指定できます。

15.3.110 slapi_entry_next_attr()

エントリでprevattrの次にくる属性を検索します。エントリの属性を繰り返して処理するには、この関数とslapi_entry_first_attr()を使用します。

15.3.110.1 構文

#include "slapi-plugin.h"
int slapi_entry_next_attr( Slapi_Entry *e, Slapi_Attr *prevattr,
    Slapi_Attr **attr );

15.3.110.2 パラメータ

この関数は、次のパラメータを取ります。

e

属性を取得するエントリです。

prevattr

エントリの前の属性です。

attr

エントリでprevattrの次にくる属性へのポインタです。

15.3.110.3 戻り値

この関数は、正常終了した場合は0を戻し、prevattrがエントリの最後の属性であった場合は-1を戻します。

15.3.110.4 メモリーに関する注意事項

戻されたattrは解放しないでください。コピーが必要な場合にコピーを作成するには、slapi_attr_dup()を使用します。

15.3.110.5 関連項目

slapi_attr_dup()

15.3.111 slapi_entry_rdn_values_present()

エントリの相対識別名(RDN)の値が、属性値としても存在するかどうかを判別します。(たとえば、エントリのRDNがcn=Barbara Jensenの場合、この関数は値Barbara Jensenを持つcn属性がエントリにあるかどうかを判別します。)

15.3.111.1 構文

#include "slapi-plugin.h"
int slapi_entry_rdn_values_present( Slapi_Entry *e );

15.3.111.2 パラメータ

この関数は、次のパラメータを取ります。

e

属性を取得するエントリです。

15.3.111.3 戻り値

この関数は、RDN内の値がエントリの属性に存在する場合は1を戻し、値が存在しない場合は0を戻します。

15.3.112 slapi_entry_schema_check()

指定されたエントリがオブジェクト・クラスのスキーマに準拠しているかどうかを判別します。

15.3.112.1 構文

#include "slapi-plugin.h"
int slapi_entry_schema_check( Slapi_PBlock *pb, Slapi_Entry *e );

15.3.112.2 パラメータ

この関数は、次のパラメータを取ります。

pb

パラメータ・ブロックです。

e

スキーマをチェックするエントリです。

15.3.112.3 戻り値

次のいずれかの値を戻します。

  • エントリがスキーマに準拠している場合またはスキーマ・チェックがオフの場合は0。また、この関数は、スキーマで許可されていない追加属性がエントリにあり、オブジェクト・クラスextensibleObjectを保有している場合も0を戻します。

  • エントリにobjectclass属性がない場合、必要な属性がない場合、スキーマで許可されていない属性がある場合(ただし、オブジェクト・クラスextensibleObjectは保有していない)、または単一値属性に複数の値がある場合は1

15.3.112.4 メモリーに関する注意事項

pb引数にはNULLを指定できます。これは、SLAPI_IS_REPLICATED_OPERATIONフラグを取得する場合にのみ使用します。このフラグが存在する場合は、スキーマ・チェックが行われません。

15.3.113 slapi_entry_schema_check_ext ()

指定された特定エントリの変更が、そのエントリのオブジェクト・クラスのスキーマに準拠しているかどうかを判別します。この関数は、変更の影響を受けない既存の属性をチェックしません。

15.3.113.1 構文

#include "slapi-plugin.h"
int slapi_entry_schema_check_ext( Slapi_PBlock *pb, Slapi_Entry *e,
    LDAPMod **mods );

15.3.113.2 パラメータ

この関数は、次のパラメータを取ります。

pb

パラメータ・ブロックです。

e

スキーマをチェックするエントリです。

mods

属性値をチェックする変更構造体へのポインタです。

15.3.113.3 戻り値

次のいずれかの値を戻します。

  • 指定されたエントリの変更がスキーマに準拠している場合またはスキーマ・チェックがオフの場合は0。また、この関数は、スキーマで許可されていない追加属性がエントリにあり、オブジェクト・クラスextensibleObjectを保有している場合も0を戻します。

  • 変更によってobjectclass属性またはその他の必須属性が欠落する場合、変更によってスキーマで許可されていない属性が追加される場合または変更によって単一値属性に複数の値が設定される場合は1

15.3.113.4 メモリーに関する注意事項

pb引数にはNULLを指定できます。これは、SLAPI_IS_REPLICATED_OPERATIONフラグを取得する場合にのみ使用します。このフラグが存在する場合は、スキーマ・チェックが行われません。

15.3.114 slapi_entry_set_dn()

エントリの識別名(DN)を設定します。

15.3.114.1 構文

#include "slapi-plugin.h"
void slapi_entry_set_dn( Slapi_Entry *e, char *dn );

15.3.114.2 パラメータ

この関数は、次のパラメータを取ります。

e

DNを割り当てるエントリです。

dn

エントリに割り当てる識別名です。

15.3.114.3 説明

この関数は、指定されたエントリで与えられるDNへのポインタを設定します。

15.3.114.4 メモリーに関する注意事項

dnは、slapi_entry_free()がコールされると解放されます。

dnのコピーを渡す必要があります。次に例を示します。

char *dn = slapi_ch_strdup(some_dn);
slapi_entry_set_dn(e, dn);

このコールの結果、古いdnは解放されます。NULL値は渡さないでください。

15.3.115 slapi_entry_set_sdn()

エントリにSlapi_DN値を設定します。

15.3.115.1 構文

#include "slapi-plugin.h"
 void slapi_entry_set_sdn( Slapi_Entry *e, const Slapi_DN *sdn );

15.3.115.2 パラメータ

この関数は、次のパラメータを取ります。

e

Slapi_DNの値を設定するエントリです。

sdn

設定する指定のSlapi_DN値です。

15.3.115.3 説明

この関数は、指定したエントリのSlapi_DNオブジェクトに値を設定します。

15.3.115.4 メモリーに関する注意事項

この関数は、sdn引数のコピーを作成します。

15.3.116 slapi_entry_size()

この関数は、最も近い1kに丸めたエントリの近似サイズを戻します。これは、キャッシュ・サイズをチェックしたり、記憶域のニーズを見積もる場合などに有効です。

15.3.116.1 構文

#include "slapi-plugin.h"
 size_t slapi_entry_size(Slapi_Entry *e);

15.3.116.2 パラメータ

この関数は、次のパラメータを取ります。

e

サイズを戻すエントリです。

15.3.116.3 戻り値

この関数は、最も近い1kに丸めたエントリのサイズを戻します。戻されるサイズはsize_tデータ型で、これはu_long値です。エントリが空の場合、サイズ1kが戻されます。

15.3.116.4 説明

エントリのサイズを確認すると属性値のサイズのみがカウントされ、他のエントリ値のサイズ(属性名、各種の正規化DN、メタデータのサイズなど)は戻されるサイズには含まれません。メタデータのサイズは、次に大きな1kまで丸めたサイズにかなり一致すると考えられます(これは、特にエントリが大きくなるほど該当します。その場合は、メタデータのサイズよりも属性値の実サイズの方がはるかに重要となります)。

エントリのサイズを確認したときは、削除された値および削除された属性がどちらもカウントに含まれることに注意してください。

15.3.117 slapi_entry_syntax_check()

この関数は、指定されたエントリに存在する属性の値が属性構文ルールに準拠しているかどうかを判別します。

15.3.117.1 構文

#include "slapi-plugin.h"
int slapi_entry_syntax_check( Slapi_PBlock *pb, Slapi_Entry *e );

15.3.117.2 パラメータ

この関数は、次のパラメータを取ります。

pb

パラメータ・ブロックです。

e

属性が構文に準拠しているかをチェックするエントリです。

15.3.117.3 戻り値

次のいずれかの値を戻します。

  • エントリの属性値が準拠している場合または構文チェックがオフの場合は0

  • エントリの属性値が属性構文ルールに準拠していない場合は1

15.3.117.4 メモリーに関する注意事項

pb引数にはNULLを指定できます。これは、SLAPI_IS_REPLICATED_OPERATIONフラグを取得する場合にのみ使用します。このフラグが存在する場合は、構文チェックが行われません。

15.3.118 slapi_entry_vattr_find()

この関数は、指定された仮想属性が存在するかどうかを判別し、存在する場合はその属性を戻します。

15.3.118.1 構文

#include "slapi-plugin.h"
int slapi_entry_vattr_find(const Slapi_Entry *e,
    const char *type, Slapi_Attr **a, int *buffer_flags);

15.3.118.2 パラメータ

この関数は、次のパラメータを取ります。

e

仮想属性をチェックするエントリです。

type

仮想属性の属性タイプです。

a

仮想属性を保持する構造体です。

buffer_flags

コール元が属性を解放する必要があるかどうかを示したビットマスクです。

15.3.118.3 戻り値

次のいずれかの値を戻します。

  • タイプで指定された仮想属性がエントリに含まれている場合は0

    この場合、aは仮想属性を参照し、buffer_flagsはSLAPI_VIRTUALATTRS_RETURNED_COPIES (構造体aを解放する必要がある)またはSLAPI_VIRTUALATTRS_RETURNED_POINTERS (解放する必要がない)を保持します。

  • 属性にエントリが含まれていない場合は-1

15.3.119 slapi_filter_compare()

2つのフィルタが同一であるかどうかを判別します。

15.3.119.1 構文

#include "slapi-plugin.h"
 int slapi_filter_compare(struct slapi_filter *f1,
    struct slapi_filter *f2);

15.3.119.2 パラメータ

この関数は、次のパラメータを取ります。

f1

比較する最初のフィルタです。

f2

比較する2番目のフィルタです。

15.3.119.3 戻り値

この関数は、2つのフィルタが同じ場合は0を戻し、同じでない場合は0以外の値を戻します。

15.3.119.4 説明

この関数を使用すると、2つのフィルタが同じであるかどうかを確認したり、別の順序に設定できます。

15.3.120 slapi_filter_free()

指定されたフィルタおよび(オプションで)それを構成する一連のフィルタ(LDAP_FILTER_AND型フィルタ内の一連のフィルタなど)を解放します。

15.3.120.1 構文

#include "slapi-plugin.h"
void slapi_filter_free( Slapi_Filter *f, int recurse );

15.3.120.2 パラメータ

この関数は、次のパラメータを取ります。

f

解放するフィルタです。

recurse

1の場合は、このフィルタを構成するすべてのフィルタを再帰的に解放します。0の場合は、fで指定されたフィルタのみを解放します。

Description

この関数は、パラメータf内のフィルタを解放します。

15.3.120.3 メモリーに関する注意事項

slapi_str2filter()を使用して作成されたフィルタは、この関数の使用後に解放する必要があります。次のようにパラメータ・ブロックから抽出されたフィルタがあるとします。

slapi_pblock_get( pb, SLAPI_SEARCH_FILTER, &filter );

このようなフィルタは解放しないでください。

15.3.120.4 関連項目

slapi_pblock_get()

slapi_str2filter()

15.3.121 slapi_filter_get_attribute_type()

すべての種類の単純なフィルタの属性タイプを取得します。

15.3.121.1 構文

#include "slapi-plugin.h"
 int slapi_filter_get_attribute_type( Slapi_Filter *f, char **type );

15.3.121.2 パラメータ

この関数は、次のパラメータを取ります。

f

部分文字列値を取得するフィルタです。

type

フィルタの属性タイプへのポインタです。

15.3.121.3 戻り値

この関数は、フィルタの属性タイプを戻します。

15.3.121.4 説明

この関数は、すべての種類の単純なフィルタの属性タイプを取得します。

  • LDAP_FILTER_GE

  • LDAP_FILTER_LE

  • LDAP_FILTER_APPROX

  • LDAP_FILTER_EQUALITY

  • LDAP_FILTER_SUBSTRINGS

  • LDAP_FILTER_PRESENT

  • LDAP_FILTER_EXTENDED

  • LDAP_FILTER_AND

  • LDAP_FILTER_OR

  • LDAP_FILTER_NOT

    (mail-foo)などのフィルタは、タイプmailを戻します。

15.3.121.5 メモリーに関する注意事項

属性タイプはtypeで戻され、この関数のコール後に解放する必要はありません。これは、slapi_filter_free()がコールされたとき、Slapi_Filter構造体と同時に解放されます。

15.3.122 slapi_filter_get_ava()

(タイプLDAP_FILTER_EQUALITYLDAP_FILTER_GELDAP_FILTER_LELDAP_FILTER_APPROXのフィルタにのみ適用)フィルタから属性タイプおよび値を取得します。

15.3.122.1 構文

#include "slapi-plugin.h"
int slapi_filter_get_ava( Slapi_Filter *f, char **type,
    struct berval **bval );

15.3.122.2 パラメータ

この関数は、次のパラメータを取ります。

f

属性および値を取得するフィルタです。

type

フィルタの属性タイプへのポインタです。

bval

フィルタの値を格納しているberval構造体のアドレスへのポインタです。

15.3.122.3 戻り値

この関数は、正常終了した場合は0を戻し、フィルタが前述のタイプのいずれでもない場合は-1を戻します。

15.3.122.4 説明

通常、タイプLDAP_FILTER_EQUALITYLDAP_FILTER_GELDAP_FILTER_LEおよびLDAP_FILTER_APPROXのフィルタは、値を属性と比較します。次に例を示します。

(cn=Barbara Jensen)

このフィルタは、cn属性の値がBarbara Jensenと一致するエントリを検索します。

属性typeはパラメータ・タイプで戻され、値はパラメータbvalで戻されます。

15.3.122.5 メモリーに関する注意事項

パラメータtypeおよびbval内の文字列はSlapi_Filter内のメモリーへの直接のポインタであるため、使用後に解放しないでください。これらは、Slapi_Filter構造体の使用後に、サーバー・エントリでslapi_filter_free()がコールされたときに解放されます。

15.3.123 slapi_filter_get_choice()

LDAP_FILTER_EQUALITYなど、指定したフィルタのタイプを取得します。

15.3.123.1 構文

#include "slapi-plugin.h"
int slapi_filter_get_choice( Slapi_Filter *f );

15.3.123.2 パラメータ

この関数は、次のパラメータを取ります。

f

取得するフィルタ・タイプです。

15.3.123.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • LDAP_FILTER_AND (ANDフィルタ)

    例: (&(ou=Accounting)(l=Sunnyvale))

  • LDAP_FILTER_OR (ORフィルタ)

    例: (|(ou=Accounting)(l=Sunnyvale))

  • LDAP_FILTER_NOT (NOTフィルタ)

    例: (!(l=Sunnyvale))

  • LDAP_FILTER_EQUALITY (等価フィルタ)

    例: (ou=Accounting)

  • LDAP_FILTER_SUBSTRINGS (部分文字列フィルタ)

    例: (ou=Account*Department)

  • LDAP_FILTER_GE (以上のフィルタ)

    例: (supportedLDAPVersion>=3)

  • LDAP_FILTER_LE (以下のフィルタ)

    例: (supportedLDAPVersion<=2)

  • LDAP_FILTER_PRESENT (存在フィルタ)

    例: (mail=*)

  • LDAP_FILTER_APPROX (近似処理フィルタ)

    例: (ou~=Sales)

  • LDAP_FILTER_EXTENDED (拡張可能フィルタ)

    例: (o:dn:=Example)

15.3.124 slapi_filter_get_subfilt()

(タイプLDAP_FILTER_SUBSTRINGSのフィルタのみに適用)フィルタから部分文字列値を取得します。

15.3.124.1 構文

#include "slapi-plugin.h"
int slapi_filter_get_subfilt( Slapi_Filter *f, char **type,
    char **initial, char ***any, char **final );

15.3.124.2 パラメータ

この関数は、次のパラメータを取ります。

f

部分文字列値を取得するフィルタです。

type

フィルタの属性タイプへのポインタです。

initial

フィルタの開始部分文字列(で始まる)へのポインタです。

any

フィルタの部分文字列(含む)の配列へのポインタです。

final

フィルタの終了部分文字列(で終わる)へのポインタです。

15.3.124.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • 正常終了した場合は0

  • フィルタが前述のタイプのいずれでもない場合は-1

15.3.124.4 説明

通常、タイプLDAP_FILTER_SUBSTRINGSのフィルタは部分文字列のセットを属性と比較します。次に例を示します。

(cn=John*Q*Public)

このフィルタは、cn属性の値がJohnで始まり、Qを含み、Publicで終わるエントリを検索します。

これらの部分文字列値および属性タイプをこのフィルタから取得するには、この関数をコールします。前述の例でこの関数をコールすると、属性タイプcnの他、initial部分文字列のJohnany部分文字列のQおよびfinal部分文字列のPublicが取得されます。

15.3.125 slapi_filter_get_type()

(タイプLDAP_FILTER_PRESENTのフィルタのみに適用)フィルタで指定された属性タイプを取得します。

15.3.125.1 構文

#include "slapi-plugin.h"
int slapi_filter_get_type( Slapi_Filter *f, char **type );

15.3.125.2 パラメータ

この関数は、次のパラメータを取ります。

f

部分文字列値を取得するフィルタです。

type

フィルタの属性タイプへのポインタです。

15.3.125.3 戻り値

この関数は、正常終了した場合は0を戻し、フィルタが前述のタイプのいずれでもない場合は-1を戻します。

15.3.125.4 説明

通常、タイプLDAP_FILTER_PRESENTのフィルタは、指定された属性に値が割り当てられているかどうかを判別します。次に例を示します。

(mail=*)

このフィルタは、mail属性に値が割り当てられているエントリを検索します。

このフィルタから属性タイプを取得するには、この関数をコールします。前述の例の場合は、この関数をコールすると属性タイプmailが取得されます。

15.3.125.5 メモリーに関する注意事項

この関数のコール後は、パラメータtypeで戻された文字列を解放しないでください。この文字列は、slapi_filter_free()をコールして構造体Slapi_Filterが解放されるときに解放されます。

15.3.126 slapi_filter_join()

LDAP_FILTER_ANDLDAP_FILTER_ORまたはLDAP_FILTER_NOTの各フィルタ・タイプのいずれかを使用して、指定された2つのフィルタを結合します。フィルタ・タイプLDAP_FILTER_NOTを指定する場合は、2番目のフィルタをNULLにする必要があります。

15.3.126.1 構文

#include "slapi-plugin.h"
Slapi_Filter *slapi_filter_join( int ftype, Slapi_Filter *f1,
    Slapi_Filter *f2 );

15.3.126.2 パラメータ

この関数は、次のパラメータを取ります。

ftype

作成する複合フィルタのタイプです。

f1

結合する最初のフィルタです。

f2

結合する2番目のフィルタです。ftypeLDAP_FILTER_NOTである場合は、この引数にNULLを指定します。

15.3.126.3 戻り値

この関数は、他の2つのフィルタから作成された新しいフィルタを戻します。

15.3.126.4 説明

通常、タイプLDAP_FILTER_ANDLDAP_FILTER_ORおよびLDAP_FILTER_NOTのフィルタは、1つ以上の他のフィルタで構成されます。次に例を示します。

(&(ou=Accounting)(l=Sunnyvale))
(|(ou=Accounting)(l=Sunnyvale))
(!(l=Sunnyvale))

前述の例のそれぞれには、1つ以上のLDAP_FILTER_EQUALITYフィルタが含まれています。

タイプLDAP_FILTER_ANDLDAP_FILTER_ORまたはLDAP_FILTER_NOTの新しいフィルタを作成するには、slapi_filter_join()関数をコールします。

15.3.126.5 メモリーに関する注意事項

f1およびf2のフィルタは結合処理中にコピーも解放もされませんが、生成されるフィルタはこれらの2つのフィルタを指す参照を保持しています。

15.3.127 slapi_filter_list_first()

(タイプLDAP_FILTER_EQUALITYLDAP_FILTER_GELDAP_FILTER_LELDAP_FILTER_APPROXのフィルタにのみ適用)指定されたフィルタを構成する最初のフィルタを取得します。

15.3.127.1 構文

#include "slapi-plugin.h"
Slapi_Filter *slapi_filter_list_first( Slapi_Filter *f );

15.3.127.2 パラメータ

この関数は、次のパラメータを取ります。

f

最初のコンポーネントを取得するフィルタです。

15.3.127.3 戻り値

指定されたフィルタfを構成する最初のフィルタ。

15.3.127.4 説明

指定されたフィルタを構成するすべてのフィルタを繰り返して処理するには、この関数とslapi_filter_list_next()関数を使用します。

通常、タイプLDAP_FILTER_ANDLDAP_FILTER_ORおよびLDAP_FILTER_NOTのフィルタは、1つ以上の他のフィルタで構成されます。たとえば、次のようなフィルタがあるとします。

(&(ou=Accounting)(l=Sunnyvale))

このリストの最初のフィルタは次のとおりです。

(ou=Accounting)

リストの最初のフィルタを取得するには、この関数をコールします。

15.3.127.5 メモリーに関する注意事項

フィルタの複製は行われません。このため、このフィルタを元のフィルタと無関係に解放しないでください。

15.3.127.6 関連項目

slapi_filter_list_next()

15.3.128 slapi_filter_list_next()

(タイプLDAP_FILTER_EQUALITYLDAP_FILTER_GELDAP_FILTER_LELDAP_FILTER_APPROXのフィルタにのみ適用)指定されたフィルタfを構成する次のフィルタ(fprevに続く)を取得します。

15.3.128.1 構文

#include "slapi-plugin.h"
Slapi_Filter *slapi_filter_list_next(Slapi_Filter *f,
    Slapi_Filter *fprev);

15.3.128.2 パラメータ

この関数は、次のパラメータを取ります。

f

次にくるコンポーネント(fprevの後の)を取得するフィルタです。

fprev

指定されたフィルタf内のフィルタです。

15.3.128.3 戻り値

指定されたフィルタfを構成する次のフィルタ(fprevの後の)。

15.3.128.4 説明

指定されたフィルタを構成するすべてのフィルタを繰り返して処理するには、この関数とslapi_filter_list_first()関数を使用します。

通常、タイプLDAP_FILTER_ANDLDAP_FILTER_ORおよびLDAP_FILTER_NOTのフィルタは、1つ以上の他のフィルタで構成されます。たとえば、次のようなフィルタがあるとします。

(&(ou=Accounting)(l=Sunnyvale))

このリストで(ou=Accounting)より後の次のフィルタは、次のとおりです。

(l=Sunnyvale)

リストからフィルタを取得するには、slapi_filter_list_next()関数をコールします。

15.3.128.5 メモリーに関する注意事項

フィルタの複製は行われません。このため、このフィルタを元のフィルタと無関係に解放しないでください。

15.3.128.6 関連項目

slapi_filter_list_first()

15.3.129 slapi_filter_test()

指定されたエントリが特定のフィルタに一致するかどうかを判別します。

15.3.129.1 構文

#include "slapi-plugin.h"
int slapi_filter_test( Slapi_PBlock *pb, Slapi_Entry *e,
    Slapi_Filter *f, int verify_access );

15.3.129.2 パラメータ

この関数は、次のパラメータを取ります。

pb

パラメータ・ブロックです。

e

テストするエントリです。

f

エントリをテストするときに照合するフィルタです。

verify_access

1の場合は、指定されたエントリを検索するアクセス権が現在のユーザーにあるかどうかを検証します。0の場合は、アクセス制御を無視します。

15.3.129.3 戻り値

次のいずれかの値です。

  • エントリがフィルタに一致した場合または指定されたフィルタがNULLの場合は0

  • フィルタ・タイプが不明の場合は-1

  • エラーが発生した場合は正の値(LDAPエラー・コード)

15.3.130 slapi_filter_test_ext()

エントリが指定されたフィルタに一致するかどうかを判別します。

15.3.130.1 構文

#include "slapi-plugin.h"
 int slapi_filter_test_ext( Slapi_PBlock *pb, Slapi_Entry *e,
    Slapi_Filter *f, int verify_access, int only_test_access)

15.3.130.2 パラメータ

この関数は、次のパラメータを取ります。

pb

ユーザーを抽出したパラメータ・ブロックです。

e

フィルタ一致を検証する必要のあるエントリです。

f

フィルタ一致に使用するフィルタです。

verify_access

アクセス・チェックを行う必要がない場合は0

アクセス・チェックを行う必要がある場合は1

only_test_access

フィルタ一致を行う必要がある場合は0

フィルタ一致を行う必要がない場合は1

15.3.130.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • エントリがフィルタに一致した場合または指定されたフィルタがNULLの場合は0

  • フィルタ・タイプが不明の場合またはエントリがフィルタに一致しない場合は-1

  • エラーが発生した場合または指定されたエントリを検索するアクセス権が現在のユーザーにない場合は正の値(LDAPエラー・コード)

15.3.130.4 説明

この関数を使用すると、エントリが指定したフィルタに一致するかどうか、または現在のユーザーにエントリへのアクセス権があることを確認できます。

15.3.131 slapi_filter_test_simple()

エントリがフィルタに一致するかどうかを判別します。

15.3.131.1 構文

#include "slapi-plugin.h"
 int slapi_filter_test_simple( Slapi_Entry *e, Slapi_Filter *f);

15.3.131.2 パラメータ

この関数は、次のパラメータを取ります。

e

テストするエントリです。

f

エントリを照合するフィルタです。

15.3.131.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • エントリがフィルタに一致した場合または指定されたフィルタがNULLの場合は0

  • フィルタ・タイプが不明の場合またはエントリがフィルタに一致しない場合は-1

  • エラーが発生した場合は正の値(LDAPエラー・コード)

15.3.131.4 説明

この関数を使用すると、エントリeがフィルタfに一致するかどうかをチェックできます。

15.3.132 slapi_find_matching_paren()

左カッコに対応する右カッコを検索します。

15.3.132.1 構文

#include "slapi-plugin.h"
char *slapi_find_matching_paren( const char *str );

15.3.132.2 パラメータ

この関数は、次のパラメータを取ります。

str

左カッコで始まる文字列へのポインタです。

15.3.132.3 戻り値

この関数は、正常終了すると右カッコへのポインタを戻します。それ以外の場合は、対応する右カッコが見つからなかったことを示すNULLを戻します。

15.3.132.4 説明

この関数は、左カッコ(で始まる文字列へのポインタを取り、対応する右カッコ)へのポインタを戻します。これは、複雑な検索フィルタ文字列を評価する場合に有効です。

15.3.133 slapi_free_search_results_internal()

slapi_search_internal_pb()およびslapi_search_internal_callback_pb()関数によって戻された検索結果を解放します。

15.3.133.1 構文

#include "slapi-plugin.h"
void slapi_free_search_results_internal(Slapi_PBlock *pb);

15.3.133.2 パラメータ

この関数は、次のパラメータを取ります。

pb

slapi_search_internal_pb()およびslapi_search_internal_callback_pb()関数によって戻されたパラメータ・ブロックです。

15.3.133.3 説明

この関数は、エントリが不要になった場合に、パラメータ・ブロックを解放する前にコールする必要があります。

15.3.134 slapi_free_suffix_list()

slapi_get_suffix_list()を使用して取得したリストなど、ディレクトリ・サフィックスのリストを解放します。

15.3.134.1 構文

#include "slapi-plugin.h"
void slapi_free_suffix_list(Slapi_DN ** suffix_list);

15.3.134.2 パラメータ

この関数は、次のパラメータを取ります。

suffix_list

解放するサフィックスの識別名の配列です。

15.3.134.3 説明

この関数は、suffix_listの各エントリおよびsuffix_list自身を解放します。サフィックスに関連付けられているデータは、データベースから削除されません。

15.3.135 slapi_get_first_backend()

最初のバックエンドのバックエンド構造体へのポインタを戻します。

15.3.135.1 構文

#include "slapi-plugin.h"
Slapi_Backend* slapi_get_first_backend(char **cookie);

15.3.135.2 パラメータ

この関数は、次のパラメータを取ります。

cookie

戻されたバックエンドの索引を含む出力パラメータです。これは、slapi_get_next_backend()をコールする場合に役立ちます。バックエンドが戻されなかった場合は、出力に0が格納されます。

15.3.135.3 戻り値

この関数は、cookieパラメータで最初のバックエンドのバックエンド構造体へのポインタおよびその索引を戻し、バックエンドが存在しない場合はNULLを戻します。

15.3.135.4 説明

この関数は、最初のバックエンドのバックエンド構造体へのポインタを戻します。すべてのバックエンドを繰り返して処理する場合は、この関数とslapi_get_next_backend()を使用します。次に例を示します。

Slapi_Backend *be = NULL;
char *cookie = NULL;
be = slapi_get_first_backend (&cookie);
while (be)
    {
    ...
    be = slapi_get_next_backend (cookie);
    }
slapi_ch_free ((void**)&cookie);

15.3.135.5 メモリーに関する注意事項

繰返し後は、slapi_ch_free()を使用してcookieパラメータを解放してください。

15.3.135.6 関連項目

slapi_get_next_backend()

15.3.136 slapi_get_object_extension()

オブジェクト拡張にアクセスします。

15.3.136.1 構文

#include "slapi-plugin.h"
void *slapi_get_object_extension(int objecttype, void *object,
    int extensionhandle);

15.3.136.2 パラメータ

この関数は、次のパラメータを取ります。

objecttype

サーバーによって設定されるタイプです。

object

拡張したオブジェクトへのポインタです。

extensionhandle

サーバーによって設定されるハンドルです。

15.3.136.3 説明

この関数は、slapi_register_object_extension()を使用して登録されたオブジェクト拡張へのポインタを戻します。

15.3.136.4 関連項目

slapi_register_object_extension()

15.3.137 slapi_get_next_backend()

次のバックエンドへのポインタを戻します。

15.3.137.1 構文

#include "slapi-plugin.h"
Slapi_Backend* slapi_get_next_backend(char *cookie);

15.3.137.2 パラメータ

この関数は、次のパラメータを取ります。

cookie

入力時は、次にくるバックエンドの検索が行われる索引を格納します。出力時は、戻されたバックエンドの索引を格納します。

15.3.137.3 戻り値

この関数は、次のバックエンドが存在する場合はそのバックエンドへのポインタを戻し、cookieパラメータを更新します。それ以外の場合はNULLを戻し、cookieは変更されません。

15.3.137.4 説明

この関数は、次のバックエンドへのポインタを戻します。すべてのバックエンドを繰り返して処理する場合は、この関数とslapi_get_first_backend()を使用します。次に例を示します。

Slapi_Backend *be = NULL;
char *cookie = NULL;
be = slapi_get_first_backend (&cookie);
while (be )
    {
    ...
    be = slapi_get_next_backend (cookie);
    }
slapi_ch_free ((void**)&cookie);

15.3.137.5 メモリーに関する注意事項

繰返し後は、slapi_ch_free()を使用してcookieパラメータを解放してください。

15.3.137.6 関連項目

slapi_get_first_backend()

slapi_ch_free()

15.3.138 slapi_get_suffix_list()

サーバーによって処理されるサフィックスDNの配列を戻します。

15.3.138.1 構文

#include "slapi-plugin.h"
Slapi_DN ** slapi_get_suffix_list(int show_private, int *count);

15.3.138.2 パラメータ

この関数は、次のパラメータを取ります。

show_private

1に設定された場合、戻されたDNリストには、Directory Serverが使用する、ユーザー・データが格納されていないサフィックスが含まれています。それ以外の場合は、ユーザー・データが格納されたサフィックスのDNのみが戻されます。

count

リスト内のサフィックスの数を格納するプレースホルダです。

15.3.138.3 戻り値

この関数は、サフィックスのベースDNが格納されているSlapi_DN構造体の配列へのポインタを戻します。countパラメータには、DNが戻されるサフィックスの数が格納されます。

15.3.138.4 メモリーに関する注意事項

戻されたリストはslapi_free_suffix_list()を使用して解放してください。

15.3.139 slapi_get_supported_controls_copy()

Directory Serverがサポートするコントロールを示す、オブジェクト識別子(OID)の割当て済配列を取得します。slapi_register_supported_control()をコールすると、新しいコントロールを登録できます。

15.3.139.1 構文

#include "slapi-plugin.h"
 int slapi_get_supported_controls_copy( char ***ctrloidsp,
    unsigned long **ctrlopsp );

15.3.139.2 パラメータ

この関数は、次のパラメータを取ります。

ctrloidsp

サポートされている一連のコントロールOIDを格納する文字配列へのポインタです。OIDを格納しない場合は、このパラメータにNULLを渡します。

ctrlopsp

ctrloidsp配列内のコントロールごとにサポートされている操作値を格納する、符号なしLong整数配列へのポインタです。サポートされている操作値を格納しない場合は、このパラメータにNULLを渡します。

15.3.139.3 戻り値

この関数は、正常終了した場合は0を戻し、エラーが発生した場合は0以外の値を戻します。

15.3.139.4 説明

マルチスレッド・セーフではないため以前のリリースから非推奨のslapi_get_supported_controls()関数は、この関数で置き換えられます。

slapi_register_supported_control()をコールしてコントロールを登録する場合は、コントロールのOIDおよびそのコントロールがサポートする操作のIDを指定します。サーバーは、コントロールのOIDの配列およびコントロールがサポートする操作の配列という2つの配列に、この情報を記録します。slapi_entry_get_uniqueid()をコールすると、これらの配列のコピーを取得できます。

ctrloidsp配列で戻されるOIDごとに、ctrlopsp配列内の対応する配列要素(同じ索引を持つ)によって、コントロールをサポートする操作が識別されます。操作に指定できるIDのリストは、「slapi_register_supported_control()」を参照してください。

15.3.139.5 メモリーに関する注意事項

戻されたctrloidsp配列は、slapi_ch_array_free()をコールして解放する必要があります。戻されたctrlopsp配列は、slapi_ch_free()をコールして解放する必要があります。

15.3.140 slapi_get_supported_extended_ops_copy()

拡張操作のオブジェクトID (OID)のコピーを取得します。

15.3.140.1 構文

#include "slapi-plugin.h"
char **slapi_get_supported_extended_ops_copy ( void );

15.3.140.2 パラメータ

この関数にパラメータはありません。

15.3.140.3 戻り値

この関数は、サーバーがサポートする拡張操作のOIDの配列へのポインタを戻します。

15.3.140.4 説明

以前のリリースから非推奨のslapi_get_supported_extended_ops()関数は、この関数で置き換えられます。slapi_get_supported_extended_ops()はマルチスレッド・セーフではありません。

この関数は、サーバーがサポートする拡張操作のオブジェクトID (OID)のコピーを取得します。SLAPI_PLUGIN_EXT_OP_OIDLISTパラメータにOIDを格納し、slapi_pblock_set()をコールすると、新しい拡張操作を登録できます。

15.3.140.5 メモリーに関する注意事項

この関数から戻された配列は、slapi_ch_array_free()関数をコールして解放する必要があります。

15.3.140.6 関連項目

slapi_pblock_set()

slapi_ch_array_free()

15.3.141 slapi_get_supported_saslmechanisms_copy()

サポートされているSimple Authentication and Security Layer (SASL)メカニズムの名前の配列を取得します。新しいSASLメカニズムを登録するには、slapi_register_supported_saslmechanism()関数をコールします。

15.3.141.1 構文

#include "slapi-plugin.h"
char ** slapi_get_supported_saslmechanisms_copy( void );

15.3.141.2 戻り値

この関数は、サーバーがサポートするSASLメカニズムの名前の配列へのポインタを戻します。

15.3.142 slapi_has8thBit()

文字列に8ビット文字が含まれているかどうかをチェックします。

15.3.142.1 構文

#include "slapi-plugin.h"
 int slapi_has8thBit(unsigned char *s);

15.3.142.2 パラメータ

この関数は、次のパラメータを取ります。

s

テスト対象の、NULLで終了する文字列へのポインタです。

15.3.142.3 戻り値

この関数は、文字列に8ビット文字が含まれている場合は1を戻し、含まれていない場合は0を戻します。

15.3.143 slapi_is_rootdse()

この関数は、エントリがルートDSEであるかどうかを判別します。ルートDSEは、機能や構成など、Directory Serverに関する情報が含まれる特殊なエントリです。

15.3.143.1 構文

#include "slapi-plugin.h"
 int slapi_is_rootdse ( const char *dn );

15.3.143.2 パラメータ

この関数は、次のパラメータを取ります。

dn

ルートDSEエントリであるかどうかを確認するためにテストするDNです。

15.3.143.3 戻り値

この関数は、dnがルートDSEの場合は1を戻し、それ以外の場合は0を戻します。

15.3.144 slapi_is_root_suffix()

サフィックスがDITのルート・サフィックスであるかどうかをチェックします。

15.3.144.1 構文

#include "slapi-plugin.h"
 int slapi_is_root_suffix(Slapi_DN * dn);

15.3.144.2 パラメータ

この関数は、次のパラメータを取ります。

dn

チェックするDNです。

15.3.144.3 戻り値

このファンクションは、次の値のいずれかを戻します。

  • DNがルート・サフィックスでない場合は0

  • DNがルート・サフィックスである場合は1

15.3.145 slapi_ldap_init()

LDAP接続へのスレッドセーフ・ハンドルを取得します。

15.3.145.1 構文

#include "slapi-plugin.h"
LDAP *slapi_ldap_init(char *ldaphost, int ldapport, int secure,
    int shared);

15.3.145.2 パラメータ

この関数は、次のパラメータを取ります。

ldaphost

LDAPサーバーが実行されているホストです。

ldapport

LDAPサーバーがリスニングするポートです。

secure

SSL経由のセキュアな接続の場合は1、それ以外の場合はNULLです。

shared

NULLでない場合は、スレッド間で接続を共有できます。

15.3.145.3 説明

この関数を使用すると、LDAP接続へのスレッドセーフ・ハンドルをプラグインで取得できます。ハンドルの使用が済んだら、slapi_ldap_unbind()をコールしてください。

接続には、Directory Server Resource Kitに同梱されているDirectory SDK for Cを使用してタイムアウトが設定されている場合があります。例15-1に、タイムアウトを設定する方法を示します。

例15-1 タイムアウトの設定

#include "slapi-plugin.h"
#include "ldap.h"

void
my_ldap_function(void)
{
    LDAP * ld;
    int    to = 5000;                  /* 5000 ms == 5 s timeout */

    if ((ld = slapi_ldap_init(host, port, 0, 1)) == NULL) {
        /* error trying to create an LDAP session */
        return -1;
    }

    if (ldap_set_option(ld, LDAP_X_OPT_CONNECT_TIMEOUT, &to) != 0) {
        /* error setting timeout                                 */
        slapi_ldap_unbind(ld);
        return -1;
    }

    /* Use the handle for a search for example.                  */

    slapi_ldap_unbind(ld);
    return 0;
}

15.3.145.4 戻り値

正常終了した場合、この関数はLDAP接続ハンドルを戻します。それ以外の場合はNULLを戻します。

15.3.145.5 関連項目

slapi_ldap_unbind()

15.3.146 slapi_ldap_unbind()

slapi_ldap_init()を使用して取得したLDAP接続を解放します。

15.3.146.1 構文

#include "slapi-plugin.h"
void slapi_ldap_unbind( LDAP *ld );

15.3.146.2 パラメータ

この関数は、次のパラメータを取ります。

ld

LDAP接続へのハンドルです。

15.3.146.3 説明

この関数を使用すると、slapi_ldap_init()を使用して取得したLDAP接続をプラグインで解放できます。

15.3.146.4 関連項目

slapi_ldap_init()

15.3.147 slapi_ldapmods_syntax_check ()

指定された変更が属性構文ルールに準拠しているかどうかを判別します。

15.3.147.1 構文

#include "slapi-plugin.h"
int slapi_ldapmods_syntax_check( Slapi_PBlock *pb, LDAPMod **mods );

15.3.147.2 パラメータ

この関数は、次のパラメータを取ります。

pb

パラメータ・ブロックです。

mods

属性値をチェックする変更構造体へのポインタです。

15.3.147.3 戻り値

次のいずれかの値を戻します。

  • 指定された変更が属性構文ルールに準拠している場合または構文チェックがオフの場合は0

  • 変更が属性構文ルールに準拠していない場合は1

15.3.147.4 メモリーに関する注意事項

pb引数にはNULLを指定できます。これは、SLAPI_IS_REPLICATED_OPERATIONフラグを取得する場合にのみ使用します。このフラグが存在する場合は、構文チェックが行われません。

15.3.148 slapi_lock_mutex()

mutexをロックします。

15.3.148.1 構文

#include "slapi-plugin.h"
void slapi_lock_mutex( Slapi_Mutex *mutex );

15.3.148.2 パラメータ

この関数は、次のパラメータを取ります。

mutex

スレッド同期のMutex

15.3.148.3 説明

この関数はスレッド同期を許可します。この関数を使用してスレッドがmutexをロックした場合は、mutexを保持するスレッドがslapi_unlock_mutex()をコールするまで、ロックを取得しようとする他のスレッドがブロックされます。

15.3.149 slapi_log_error_ex()

サーバー・エラー・ログにエラー・メッセージを書き込みます。

15.3.149.1 構文

#include "slapi-plugin.h"
int slapi_log_error_ex(long errorId,
    long msgId, int connId, int opId, char const * subsystem,
    char const * humanReadableMsg, char const * fmt, /* args */ ...);

15.3.149.2 パラメータ

この関数は、次のパラメータを取ります。

errorId

このエラー・メッセージに指定する一意の識別子です。

msgId

SLAPI_OPERATION_MSGIDを使用して取得した、現在のメッセージの識別子です。

connId

SLAPI_CONN_IDを使用して取得した、現在の接続の識別子です。

opId

SLAPI_OPERATION_IDを使用して取得した、現在の操作の識別子です。

subsystem

メッセージを記録するプラグイン関数の名前など、発生した警告のコンテキストを示す文字列です。

humanReadableMsg

この警告を識別する文字列メッセージです。

fmt

printf()の形式でのフォーマット指定です。

args

fmtでフォーマットを指定する場合の引数です。

15.3.149.3 説明

この関数は、指定されたエラー・メッセージをサーバー・エラー・ログに同期的に書き込みます。この関数は、ログ・メッセージがディスクに書き込まれるまで復帰しません。したがって、書込み処理中はサーバーがブロックされます。デフォルトのエラー・ログは$INSTANCE_PATH/logs/errorsです。

slapi_log_info_ex()とは異なり、この関数はオフにできません。

通常、エラー・メッセージは致命的エラーと関係があります。警告の場合は、slapi_log_warning_ex()を使用します。情報ログ・メッセージの場合は、slapi_log_info_ex()を使用します。

15.3.149.4

例15-2に、slapi_log_error_ex()のコールを示します。

例15-2 エラーのロギング

#include "slapi-plugin.h"
#include "example-com-error-ids.h" /* example.com unique
                                      error IDs file       */
int
foobar(Slapi_PBlock * pb)
{
    char * error_cause;
    int    apocalypse = 1;         /* Expect the worst.    */

    /* ... */

    if (apocalypse) {              /* Server to crash soon */
        slapi_log_error_ex(
            EXCOM_SERVER_MORIBUND, /* Unique error ID      */
            SLAPI_LOG_NO_MSGID,
            SLAPI_LOG_NO_CONNID,
            SLAPI_LOG_NO_OPID,
            "example.com: foobar in baz plug-in",
            "cannot write to file system: %s\n",
            error_cause
        );
        return -1;
    }
    return 0;
}

15.3.149.5 戻り値

この関数は、正常終了した場合は0を戻します。そうでない場合は、-1を戻します。

15.3.150 slapi_log_info_ex()

サーバー・エラー・ログに情報メッセージを書き込みます。

15.3.150.1 構文

#include "slapi-plugin.h"
int slapi_log_info_ex(slapi_log_info_area_t area,
    slapi_log_info_level_t level,
    long msgId, int connId, int opId, char const * subsystem,
    char const * fmt, /* args */, ...);

15.3.150.2 パラメータ

この関数は、次のパラメータを取ります。

area

nsslapd-infolog-areaの値に領域の10進値を加算して、ロギングを有効にするサーバー・コンポーネントを指定します。情報ロギングを無効にするには、値から減算します。

level

areaで情報ロギングが有効化されている場合に、サーバーがこのメッセージを記録する必要があるかどうかを指定します。

情報ロギングが有効化されている場合は、次のようにレベルを設定します。

  • SLAPI_LOG_INFO_LEVEL_DEFAULTは、メッセージを常に記録します。

  • SLAPI_LOG_INFO_LEVEL_EXTRAは、nsslapd-infolog-levelの値が0より大きい場合にのみ記録します。

msgId

SLAPI_OPERATION_MSGIDを使用して取得した、現在のメッセージの識別子です。

connId

SLAPI_CONN_IDを使用して取得した、現在の接続の識別子です。

opId

SLAPI_OPERATION_IDを使用して取得した、現在の操作の識別子です。

subsystem

メッセージを記録するプラグイン関数の名前など、発生した警告のコンテキストを示す文字列です。

fmt

printf()の形式でのフォーマット指定です。

args

fmtでフォーマットを指定する場合の引数です。

15.3.150.3 説明

この関数は、指定されたエラー・メッセージをサーバー・エラー・ログに同期的に書き込みます。この関数は、ログ・メッセージがディスクに書き込まれるまで復帰しません。したがって、書込み処理中はサーバーがブロックされます。デフォルトのエラー・ログは$INSTANCE_PATH/logs/errorsです。

この関数は、デフォルトでは無効化されています。メッセージのロギングを有効にするには、dsconf set-log-propコマンドを使用します。

ログの管理には、Directory Service Control Centerを使用することもできます

通常、サーバーの動作をデバッグする場合を除き、システム管理者は情報メッセージを無視できます。エラーの場合は、slapi_log_error_ex()を使用します。警告の場合は、slapi_log_warning_ex()を使用します。

15.3.150.4

例15-3に、slapi_log_info_ex()のコールを示します。

例15-3 情報メッセージのロギング

#include "slapi-plugin.h"

int
hello()
{
    slapi_log_info_ex(
        SLAPI_LOG_INFO_AREA_PLUGIN,
        SLAPI_LOG_INFO_LEVEL_DEFAULT,
        SLAPI_LOG_NO_MSGID,
        SLAPI_LOG_NO_CONNID,
        SLAPI_LOG_NO_OPID,
        "hello() from a plug-in",
        "Hello, World!\n"
    );
    return 0;
}

15.3.150.5 戻り値

この関数は、正常終了した場合は0を戻します。そうでない場合は、-1を戻します。

15.3.151 slapi_log_warning_ex()

サーバー・エラー・ログに警告メッセージを書き込みます。

15.3.151.1 構文

#include "slapi-plugin.h"
int slapi_log_warning_ex(long warningId,
    long msgId, int connId, int opId, char const * subsystem,
    char const * humanReadableMsg, char const * fmt, /* args */ ...);

15.3.151.2 パラメータ

この関数は、次のパラメータを取ります。

warningId

この警告メッセージに指定する一意の識別子です。

msgId

SLAPI_OPERATION_MSGIDを使用して取得した、現在のメッセージの識別子です。

connId

SLAPI_CONN_IDを使用して取得した、現在の接続の識別子です。

opId

SLAPI_OPERATION_IDを使用して取得した、現在の操作の識別子です。

subsystem

メッセージを記録するプラグイン関数の名前など、発生した警告のコンテキストを示す文字列です。

humanReadableMsg

この警告を識別する文字列メッセージです。

fmt

printf()の形式でのフォーマット指定です。

args

fmtでフォーマットを指定する場合の引数です。

15.3.151.3 説明

この関数は、指定されたエラー・メッセージをサーバー・エラー・ログに同期的に書き込みます。この関数は、ログ・メッセージがディスクに書き込まれるまで復帰しません。したがって、書込み処理中はサーバーがブロックされます。デフォルトのエラー・ログは$INSTANCE_PATH/logs/errorsです。

slapi_log_info_ex()とは異なり、この関数はオフにできません。

通常、警告メッセージは重大となりうるエラーと関係がありますが、致命的エラーとは関係していません。致命的エラーの場合は、slapi_log_error_ex()を使用します。情報ログ・メッセージの場合は、slapi_log_info_ex()を使用します。

15.3.151.4

例15-4に、slapi_log_warning_ex()のコールを示します。

例15-4 警告のロギング

#include "slapi-plugin.h"
#include "example-com-warning-ids.h" /* example.com unique
                                        warning IDs file  */
int
foobar()
{
    int disk_use_percentage;

    /* ... */

    if (disk_use_percentage>= 95){
        slapi_log_warning_ex(
            EXCOM_DISK_FULL_WARN,    /* unique warning ID */
            SLAPI_LOG_NO_MSGID,
            SLAPI_LOG_NO_CONNID,
            SLAPI_LOG_NO_OPID,
            "example.com: foobar in baz plug-in",
            "disk %.0f%% full, find more space\n",
            (float)disk_use_percentage
        );
    }
    return 0;
}

15.3.151.5 戻り値

この関数は、正常終了した場合は0を戻します。そうでない場合は、-1を戻します。

15.3.151.6 関連項目

slapi_log_error_ex()

slapi_log_info_ex()

15.3.152 slapi_matchingrule_free()

一致ルールの登録後にSlapi_MatchingRuleEntryを解放します。

15.3.152.1 構文

#include "slapi-plugin.h"
void slapi_matchingrule_free(Slapi_MatchingRuleEntry **mrEntry,
    int freeMembers);

15.3.152.2 パラメータ

この関数は、次のパラメータを取ります。

mrEntry

一致ルールの登録オブジェクトです。

freeMembers

Slapi_MatchingRuleEntryのメンバーを解放するかどうかです。

0の場合は、Slapi_MatchingRuleEntryのメンバーを解放しません。

15.3.152.3 説明

この関数は、構造体を使用して一致ルールが登録された後、Slapi_MatchingRuleEntryに割り当てられたメモリーを解放します。

15.3.153 slapi_matchingrule_get()

Slapi_MatchingRuleEntryメンバーにアクセスします。

15.3.153.1 構文

#include "slapi-plugin.h"
int slapi_matchingrule_get(Slapi_MatchingRuleEntry *mr, int arg,
    void *value);

15.3.153.2 パラメータ

この関数は、次のパラメータを取ります。

mr

一致ルールの登録オブジェクトです。

arg

次のSlapi_MatchingRuleEntryメンバーの識別子です。

  • SLAPI_MATCHINGRULE_DESC (一致ルールを説明する文字列)

  • SLAPI_MATCHINGRULE_NAME (一致ルールを識別する名前)

  • SLAPI_MATCHINGRULE_OID (一致ルールのオブジェクト識別子を表す文字列)

  • SLAPI_MATCHINGRULE_SYNTAX (一致ルール構文のOID文字列1.3.6.1.4.1.1466.115.121.1.15)

  • SLAPI_MATCHINGRULE_OBSOLETE (ルールが古いかどうかを示すint)

value

メンバーから取得した値です。

15.3.153.3 説明

この関数は、argの識別子に基づいてSlapi_MatchingRuleEntryメンバーにアクセスします。

15.3.153.4 戻り値

この関数は、正常終了した場合は0を戻します。そうでない場合は、-1を戻します。

15.3.154 slapi_matchingrule_new()

Slapi_MatchingRuleEntryを割り当てます。

15.3.154.1 構文

#include "slapi-plugin.h"
Slapi_MatchingRuleEntry *slapi_matchingrule_new(void);

15.3.154.2 説明

この関数は、一致ルールの登録に使用されるSlapi_MatchingRuleEntryを割り当てます。

15.3.154.3 戻り値

この関数は、正常終了すると一致ルール登録オブジェクトへのポインタを戻します。それ以外の場合はNULLを戻します。

15.3.155 slapi_matchingrule_register()

一致ルールをサーバーに登録します。

15.3.155.1 構文

#include "slapi-plugin.h"
int slapi_matchingrule_register(Slapi_MatchingRuleEntry *mrEntry);

15.3.155.2 パラメータ

この関数は、次のパラメータを取ります。

mrEntry

一致ルールの登録オブジェクトです。

15.3.155.3 説明

この関数は、Slapi_MatchingRuleEntryをサーバーに登録します。プラグイン初期化関数の一環として一致ルールを登録します。

まず、slapi_matchingrule_new()を使用して構造体を割り当てます。次に、slapi_matchingrule_set()を使用して一致ルール・エントリのメンバーを設定します。メンバーの設定後、この関数を使用して一致ルールをサーバーに登録します。最後に、slapi_matchingrule_free()を使用して、割り当てられたメモリーを解放します。

15.3.155.4 戻り値

この関数は、正常終了した場合は0を戻します。そうでない場合は、-1を戻します。

15.3.156 slapi_matchingrule_set()

Slapi_MatchingRuleEntryメンバーを変更します。

15.3.156.1 構文

#include "slapi-plugin.h"
int slapi_matchingrule_set(Slapi_MatchingRuleEntry *mr, int arg,
    void *value);

15.3.156.2 パラメータ

この関数は、次のパラメータを取ります。

mr

一致ルールの登録オブジェクトです。

arg

次のSlapi_MatchingRuleEntryメンバーの識別子です。

  • SLAPI_MATCHINGRULE_DESC (一致ルールを説明する文字列)

  • SLAPI_MATCHINGRULE_NAME (一致ルールを識別する名前)

  • SLAPI_MATCHINGRULE_OID (一致ルールのオブジェクト識別子を表す文字列)

  • SLAPI_MATCHINGRULE_SYNTAX (一致ルール構文のOID文字列1.3.6.1.4.1.1466.115.121.1.15)

  • SLAPI_MATCHINGRULE_OBSOLETE (ルールが古いかどうかを示すint)

value

メンバーに適用する値です。

15.3.156.3 説明

この関数は、argの識別子に基づいてSlapi_MatchingRuleEntryメンバーを変更します。

15.3.156.4 戻り値

この関数は、正常終了した場合は0を戻します。そうでない場合は、-1を戻します。

15.3.157 slapi_mod_add_value()

Slapi_Mod構造体に値を追加します。

15.3.157.1 構文

#include "slapi-plugin.h"
 void slapi_mod_add_value(Slapi_Mod *smod, const struct berval *val);

15.3.157.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されたSlapi_Modへのポインタです。

val

属性値を表すbervalへのポインタです。

15.3.157.3 説明

指定された属性のコピーをSlapi_Modに追加します。

15.3.158 slapi_mod_done()

Slapi_Mod構造体の内部を解放します。

15.3.158.1 構文

#include "slapi-plugin.h"
 void slapi_mod_done(Slapi_Mod *mod);

15.3.158.2 パラメータ

この関数は、次のパラメータを取ります。

mod

Slapi_Modへのポインタです。

15.3.158.3 説明

この関数は、Slapi_Modの内部を解放し、初期化されていない状態にします。

15.3.158.4 メモリーに関する注意事項

スタックから割り当てられたSlapi_Modの使用が終了した場合またはこれを再利用する場合に、この関数を使用します。

15.3.159 slapi_mod_dump()

LDAPModの内容をサーバー・ログにダンプします。

15.3.159.1 構文

#include "slapi-plugin.h"
void slapi_mod_dump(LDAPMod *mod, int n);

15.3.159.2 パラメータ

この関数は、次のパラメータを取ります。

mod

LDAPModへのポインタです。

n

ログに記録される数値ラベルです。

15.3.159.3 説明

この関数は、LDAP_DEBUG_ANYログ・レベルを使用して、デバッグ向けにLDAPModの内容を$INSTANCE_PATH/logs/errorsにダンプします。

15.3.160 slapi_mod_free()

Slapi_Mod構造体を解放します。

15.3.160.1 構文

#include "slapi-plugin.h"
 void slapi_mod_free(Slapi_Mod **smod);

15.3.160.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されたSlapi_Modへのポインタです。

15.3.160.3 説明

この関数は、slapi_mod_new()によって割り当てられたSlapi_Mod構造体を解放します。

15.3.160.4 関連項目

slapi_mod_new()

15.3.161 slapi_mod_get_first_value()

Slapi_Modイテレータを初期化し、最初の属性値を戻します。

15.3.161.1 構文

#include "slapi-plugin.h"
 struct berval *slapi_mod_get_first_value(Slapi_Mod *smod);

15.3.161.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されたSlapi_Modへのポインタです。

15.3.161.3 戻り値

この関数は、Slapi_Modの最初の属性値へのポインタを戻し、値が存在しない場合はNULLを戻します。

15.3.161.4 説明

Slapi_Mod構造体の属性値を繰り返して処理するには、この関数とslapi_mod_get_next_value()を使用します。

15.3.161.5 関連項目

slapi_mod_get_next_value()

15.3.162 slapi_mod_get_ldapmod_byref()

Slapi_Mod構造体のLDAPModへの参照を取得します。

15.3.162.1 構文

#include "slapi-plugin.h"
 const LDAPMod *slapi_mod_get_ldapmod_byref(const Slapi_Mod *smod);

15.3.162.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されたSlapi_Modへのポインタです。

15.3.162.3 戻り値

この関数は、Slapi_Modが所有する読取り専用LDAPModへのポインタを戻します。

15.3.162.4 説明

Slapi_Modに格納されているLDAPModに直接アクセスするには、この関数を使用します。

15.3.162.5 メモリーに関する注意事項

LDAPModの担当は、Slapi_Modのままとなります。

15.3.162.6 関連項目

slapi_mod_get_ldapmod_passout()

15.3.163 slapi_mod_get_ldapmod_passout()

Slapi_Mod構造体に格納されているLDAPModを取得します。

15.3.163.1 構文

#include "slapi-plugin.h"
 LDAPMod *slapi_mod_get_ldapmod_passout(Slapi_Mod *smod);

15.3.163.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されたSlapi_Modへのポインタです。

15.3.163.3 戻り値

この関数は、コール元が保持するLDAPModへのポインタを戻します。

15.3.163.4 説明

Slapi_ModからLDAPModを取得するには、この関数を使用します。

15.3.163.5 メモリーに関する注意事項

LDAPModの担当は、コール元に転送されます。Slapi_Modは初期化されていない状態のままとなります。

15.3.163.6 関連項目

slapi_mod_get_ldapmod_byref()

15.3.164 slapi_mod_get_next_value()

Slapi_Modイテレータを増分し、次の属性値を戻します。

15.3.164.1 構文

#include "slapi-plugin.h"
 struct berval *slapi_mod_get_next_value(Slapi_Mod *smod);

15.3.164.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されたSlapi_Modへのポインタです。

15.3.164.3 戻り値

この関数は、Slapi_Modの次の属性値へのポインタを戻し、それ以上値がない場合はNULLを戻します。

15.3.164.4 説明

Slapi_Mod内の属性値を繰り返して処理するには、この関数とslapi_mod_get_first_value()を使用します。

15.3.164.5 関連項目

slapi_mod_get_first_value()

15.3.165 slapi_mod_get_num_values()

Slapi_Mod構造体の値の数を取得します。

15.3.165.1 構文

#include "slapi-plugin.h"
 int slapi_mod_get_num_values(const Slapi_Mod *smod);

15.3.165.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されたSlapi_Modへのポインタです。

15.3.165.3 戻り値

この関数は、Slapi_Mod内の属性値の数を戻します。

15.3.166 slapi_mod_get_operation()

Slapi_Mod構造体の操作タイプを取得します。

15.3.166.1 構文

#include "slapi-plugin.h"
 int slapi_mod_get_operation(const Slapi_Mod *smod);

15.3.166.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されたSlapi_Modへのポインタです。

15.3.166.3 戻り値

この関数は、ビット単位のOR演算子とLDAP_MOD_BVALUESを使用するときに組み合せられる、LDAP_MOD_ADDLDAP_MOD_DELETELDAP_MOD_REPLACEのいずれかを戻します。

15.3.166.4 関連項目

slapi_mod_set_operation()

15.3.167 slapi_mod_get_type()

Slapi_Mod構造体の属性タイプを取得します。

15.3.167.1 構文

#include "slapi-plugin.h"
 const char *slapi_mod_get_type(const Slapi_Mod *smod);

15.3.167.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されたSlapi_Modへのポインタです。

15.3.167.3 戻り値

この関数は、Slapi_Mod内の属性タイプへの読取り専用ポインタを戻します。

15.3.167.4 説明

Slapi_ModのLDAP属性タイプを取得します。

15.3.167.5 関連項目

slapi_mod_set_type()

15.3.168 slapi_mod_init()

Slapi_Mod構造体を初期化します。

15.3.168.1 構文

#include "slapi-plugin.h"
 void slapi_mod_init(Slapi_Mod *smod, int initCount);

15.3.168.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されていないSlapi_Modへのポインタです。

initCount

領域を確保するために指定した属性値の数です。最小値は0です。

15.3.168.3 説明

この関数はSlapi_Modを初期化して空にしますが、指定された数の属性値を格納する初期領域は確保します。

15.3.168.4 メモリーに関する注意事項

必要な領域が不明な場合には、initCount0を使用できます。Slapi_Modは必要に応じて拡張されます。

15.3.169 slapi_mod_init_byref()

既存のLDAPModのラッパーであるSlapi_Mod構造体を初期化します。

15.3.169.1 構文

#include "slapi-plugin.h"
 void slapi_mod_init_byref(Slapi_Mod *smod, LDAPMod *mod);

15.3.169.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されていないSlapi_Modへのポインタです。

mod

LDAPModへのポインタです。

15.3.169.3 説明

この関数は、LDAPModへの参照が格納されているSlapi_Modを初期化します。LDAPModを使用していて、Slapi_Mod関数でこの構造体に簡単にアクセスする場合に、この関数を使用します。

15.3.170 slapi_mod_init_byval()

LDAPModのコピーを使用してSlapi_Mod構造体を初期化します。

15.3.170.1 構文

#include "slapi-plugin.h"
 void slapi_mod_init_byval(Slapi_Mod *smod, const LDAPMod *mod);

15.3.170.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されていないSlapi_Modへのポインタです。

mod

LDAPModへのポインタです。

15.3.171 slapi_mod_init_passin()

LDAPModからSlapi_Modを初期化します。

15.3.171.1 構文

#include "slapi-plugin.h"
 void slapi_mod_init_passin(Slapi_Mod *smod, LDAPMod *mod);

15.3.171.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されていないSlapi_Modへのポインタです。

mod

LDAPModへのポインタです。

15.3.171.3 説明

この関数は、LDAPModを渡してSlapi_Modを初期化します。LDAPModSlapi_Modに変換するには、この関数を使用します。

15.3.171.4 メモリーに関する注意事項

LDAPModの担当は、Slapi_Modに転送されます。Slapi_Modが破棄されるときにLDAPModも破棄されます。

15.3.172 slapi_mod_isvalid()

Slapi_Mod構造体が有効であるかどうかを判別します。

15.3.172.1 構文

#include "slapi-plugin.h"
 int slapi_mod_isvalid(const Slapi_Mod *mod);

15.3.172.2 パラメータ

この関数は、次のパラメータを取ります。

smod

Slapi_Modへのポインタです。

15.3.172.3 戻り値

このファンクションは、次の値のいずれかを戻します。

15.3.172.4 説明

Slapi_Modの内容が有効であることを確認するには、この関数を使用します。操作タイプがビット単位のOR演算子とLDAP_MOD_BVALUESを使用するときに組み合せられる、LDAP_MOD_ADDLDAP_MOD_DELETELDAP_MOD_REPLACEのいずれかである場合、属性タイプがNULLでない場合、および追加と置換の操作に1つ以上の属性値がある場合に、有効であるとみなされます。

15.3.173 slapi_mod_new()

新しいSlapi_Mod構造体を割り当てます。

15.3.173.1 構文

#include "slapi-plugin.h"
 Slapi_Mod* slapi_mod_new( void );

15.3.173.2 パラメータ

この関数にパラメータはありません。

15.3.173.3 戻り値

この関数は、初期化されていない、割当て済のSlapi_Modへのポインタを戻します。

15.3.173.4 説明

この関数は、初期化されていない新しいSlapi_Modを割り当てます。スタックからではなく、ヒープから割り当てられたSlapi_Modが必要な場合に、この関数を使用します。

15.3.173.5 関連項目

slapi_mod_free()

15.3.174 slapi_mod_remove_value()

Slapi_Modイテレータの現在位置で値を削除します。

15.3.174.1 構文

#include "slapi-plugin.h"
 void slapi_mod_remove_value(Slapi_Mod *smod);

15.3.174.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されたSlapi_Modへのポインタです。

15.3.175 slapi_mod_set_operation()

Slapi_Mod構造体の操作タイプを設定します。

15.3.175.1 構文

#include "slapi-plugin.h"
 void slapi_mod_set_operation(Slapi_Mod *smod, int op);

15.3.175.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されたSlapi_Modへのポインタです。

op

ビット単位のOR演算子とLDAP_MOD_BVALUESを使用するときに組み合せられる、LDAP_MOD_ADDLDAP_MOD_DELETELDAP_MOD_REPLACEのいずれかです。

15.3.175.3 関連項目

slapi_mod_get_operation()

15.3.176 slapi_mod_set_type()

Slapi_Modの属性タイプを設定します。

15.3.176.1 構文

#include "slapi-plugin.h"
 void slapi_mod_set_type(Slapi_Mod *smod, const char *type);

15.3.176.2 パラメータ

この関数は、次のパラメータを取ります。

smod

初期化されたSlapi_Modへのポインタです。

type

属性タイプです。

15.3.176.3 説明

Slapi_Modの属性タイプを、指定された値のコピーに設定します。

15.3.176.4 関連項目

slapi_mod_get_type()

15.3.177 slapi_moddn_get_newdn()

エントリの新しいDNを構築します。

15.3.177.1 構文

#include "slapi-plugin.h"
 char * slapi_moddn_get_newdn(Slapi_DN *dn_olddn, char *newrdn,
    char *newsuperiordn);

15.3.177.2 パラメータ

この関数は、次のパラメータを取ります。

dn_olddn

古いDN値です。

newrdn

新しいRDN値です。

newsuperiordn

NULLでない場合は、新しいDNの将来の上位エントリとなるDNです。これは、このパラメータの内容の前にnewrdnの値を追加して求められます。

15.3.177.3 戻り値

この関数は、前のDNがdn_olddnであったエントリの新しいDNを戻します。

15.3.177.4 説明

この関数はmoddn操作に使用され、新しいRDNおよび新しい親のDNから新しいDNを構築します。

新しいDNは、newrdnの新しいRDNを親DNに追加して求められます。NULLでない場合、親はnewsuperiordn内の値となります。それ以外の場合は、古いRDNを削除してdn_olddnから取得されます(エントリの親は新しいDNと同じままです)。

15.3.177.5 メモリーに関する注意事項

戻されたDNは、slapi_ch_free_string()を使用して解放する必要があります。