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

前
 
次
 

16 Directory ServerFunctionリファレンス(パートII)

この章には、プラグインを作成するための、パブリック関数のリファレンスの2番目の部分が含まれています。前の章には、リファレンスの1番目の部分が含まれています。

前の章の各項では、プラグインAPI関数のslapi_access_allowed()からslapi_moddn_get_newdn()まで説明しています。

次の各項では、プラグインAPI関数のslapi_modify_internal_pb()からslapi_wait_condvar ()までアルファベット順に説明します。

16.1 アルファベット順の関数(パートII)

16.1.1 slapi_modify_internal_pb()

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

16.1.1.1 構文

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

16.1.1.2 パラメータ

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

pb

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

16.1.1.3 戻り値

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

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

16.1.1.4 説明

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

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

slapi_modify_internal_set_pb()に渡されるパラメータが、この関数によって変更されたり消費されることはありません。

16.1.2 slapi_modify_internal_set_pb()

内部変更操作のためのパラメータ・ブロックを準備します。

16.1.2.1 構文

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

16.1.2.2 パラメータ

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

pb

内部変更操作のためのパラメータ・ブロック

dn

変更するエントリの識別名

mods

適用する変更の配列

controls

変更操作用に要求するコントロールの配列

uniqueid

DNを使用しない場合、エントリの一意識別子

plugin_identity

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

operation_flags

NULLまたはSLAPI_OP_FLAG_NEVER_CHAINです。

16.1.2.3 戻り値

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

16.1.2.4 説明

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

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

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

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

slapi_modify_internal_pb()をコールした後、パラメータ・ブロックを解放します。

16.1.3 slapi_modrdn_internal_pb()

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

16.1.3.1 構文

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

16.1.3.2 パラメータ

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

pb

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

16.1.3.3 戻り値

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

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

16.1.3.4 説明

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

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

slapi_rename_internal_set_pb()に渡されるパラメータが、この関数によって変更されたり消費されることはありません。

16.1.3.6 関連項目

slapi_rename_internal_set_pb()

16.1.4 slapi_mods2entry()

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

16.1.4.1 構文

#include "slapi-plugin.h"
 int slapi_mods2entry(Slapi_Entry **e, const char *dn,
    LDAPMod **attrs);

16.1.4.2 パラメータ

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

e

作成されたエントリに戻るときに設定されるポインタのアドレス

dn

エントリのLDAP DN

attrs

エントリ属性を表す、タイプLDAP_MOD_ADDLDAPModの配列

16.1.4.3 戻り値

この関数は、成功した場合にはLDAP_SUCCESSを戻し、失敗した場合にはLDAPリターン・コードを戻します。

16.1.4.4 説明

この関数は、タイプLDAP_MODD_ADDLDAPModの配列のコピーから、Slapi_Entryを作成します。

16.1.4.5 関連項目

slapi_entry2mods()

16.1.5 slapi_mods_add()

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

16.1.5.1 構文

#include "slapi-plugin.h"
 void slapi_mods_add( Slapi_Mods *smods, int modtype,
    const char *type, unsigned long len, const char *val);

16.1.5.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

modtype

LDAP_MOD_ADDLDAP_MOD_DELETELDAP_MOD_REPLACEのいずれか

type

LDAP属性タイプ

len

属性値のバイト単位の長さ

val

属性値

16.1.5.3 説明

この関数は、単一の属性値を含む新しいmodSlapi_Modsに追加します。modmodtypetypelenおよびvalの各値のコピーで構成されます。

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

この関数は、slapi_mods_init_byref()で初期化されたSlapi_Modsでは使用しないでください。

16.1.6 slapi_mods_add_ldapmod()

LDAPModSlapi_Mods構造体に追加します。

16.1.6.1 構文

#include "slapi-plugin.h"
 void slapi_mods_add_ldapmod(Slapi_Mods *smods, LDAPMod *mod);

16.1.6.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

mod

追加するLDAPModへのポインタ

16.1.6.3 説明

LDAPModSlapi_Modsに追加します。

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

LDAPModの担当は、Slapi_Modsに転送されます。

この関数は、slapi_mods_init_byref()で初期化されたSlapi_Modsでは使用しないでください。

16.1.7 slapi_mods_add_mod_values()

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

16.1.7.1 構文

#include "slapi-plugin.h"
 void slapi_mods_add_mod_values( Slapi_Mods *smods, int modtype,
    const char *type, Slapi_Value **va );

16.1.7.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

modtype

LDAP_MOD_ADDLDAP_MOD_DELETELDAP_MOD_REPLACEのいずれか

type

LDAP属性タイプ

va

属性値を表す、Slapi_ValueNULL終了配列

16.1.7.3 説明

この関数は、新しいmodSlapi_Modsに追加します。modmodtypetypeおよびvaの各値のコピーで構成されます。この関数は、Slapi_Valueの配列として渡す属性値がある場合に使用します。

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

この関数は、slapi_mods_init_byref()で初期化されたSlapi_Modsでは使用しないでください。

See Also

slapi_mods_add()

slapi_mods_add_ldapmod()

slapi_mods_add_modbvps()

slapi_mods_add_string()

16.1.8 slapi_mods_add_modbvps()

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

16.1.8.1 構文

#include "slapi-plugin.h"
 void slapi_mods_add_modbvps( Slapi_Mods *smods, int modtype,
    const char *type, struct berval **bvps );

16.1.8.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

modtype

LDAP_MOD_ADDLDAP_MOD_DELETELDAP_MOD_REPLACEのいずれか

type

LDAP属性タイプ

bvps

属性値を表す、bervalNULL終了配列

16.1.8.3 説明

この関数は、新しいmodSlapi_Modsに追加します。modmodtypetypeおよびbvpsの各値のコピーで構成されます。この関数は、bervalの配列として渡す属性値がある場合に使用します。

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

この関数は、slapi_mods_init_byref()で初期化されたSlapi_Modsでは使用しないでください。

16.1.9 slapi_mods_add_smod()

Slapi_ModSlapi_Mods構造体に追加します。

16.1.9.1 構文

#include "slapi-plugin.h"
void slapi_mods_add_smod(Slapi_Mods *smods, Slapi_Mod *smod);

16.1.9.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

smod

追加するSlapi_Modへのポインタ

16.1.9.3 説明

Slapi_ModSlapi_Modsに追加します。

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

Slapi_Modの担当は、Slapi_Modsに転送されます。

この関数は、slapi_mods_init_byref()で初期化されたSlapi_Modsでは使用しないでください。

16.1.10 slapi_mods_add_string()

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

16.1.10.1 構文

#include "slapi-plugin.h"
 void slapi_mods_add_string( Slapi_Mods *smods, int modtype,
    const char *type, const char *val);

16.1.10.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

modtype

LDAP_MOD_ADD、LDAP_MOD_DELETE、LDAP_MOD_REPLACEのいずれか

type

LDAP属性タイプ

val

NULLで終了する文字列として表される属性値

16.1.10.3 説明

この関数は、単一の文字列の属性値を含む新しいmodSlapi_Modsに追加します。modmodtypetypeおよびvalの各値のコピーで構成されます。

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

この関数は、slapi_mods_init_byref()で初期化されたSlapi_Modsでは使用しないでください。

16.1.11 slapi_mods_done()

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

16.1.11.1 構文

#include "slapi-plugin.h"
 void slapi_mods_done(Slapi_Mods *smods);

16.1.11.2 パラメータ

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

smods

Slapi_Mods構造体へのポインタ

16.1.11.3 説明

この関数はSlapi_Modsの内部を、初期化されていない状態のまま解放します。この関数は、スタックが割り当てられたSlapi_Modsで、作業を完了したとき、または再利用するときに使用します。

16.1.12 slapi_mods_dump()

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

16.1.12.1 構文

#include "slapi-plugin.h"
 void slapi_mods_dump(const Slapi_Mods *smods, const char *text);

16.1.12.2 パラメータ

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

smods

Slapi_Modsへのポインタ

text

ログ(Slapi_Modsのコンテンツの前)に含まれる説明テキスト

16.1.12.3 説明

この関数では、デバッグのために、LDAP_DEBUG_ANYログ・レベルを使用して、Slapi_Modsのコンテンツを$INSTANCE_PATH/logs/errorsにダンプします。

16.1.13 slapi_mods_free()

Slapi_Mods構造体を解放します。

16.1.13.1 構文

#include "slapi-plugin.h"
void slapi_mods_free(Slapi_Mods **smods);

16.1.13.2 パラメータ

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

smods

割り当てられたSlapi_Modsへのポインタ

16.1.13.3 説明

この関数は、slapi_mods_new()によって割り当てられたSlapi_Modsを解放します。

16.1.13.4 関連項目

slapi_mods_new()

16.1.14 slapi_mods_get_first_mod()

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

16.1.14.1 構文

#include "slapi-plugin.h"
LDAPMod *slapi_mods_get_first_mod(Slapi_Mods *smods);

16.1.14.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

16.1.14.3 戻り値

この関数は、Slapi_Mods内の最初のLDAPModへのポインタを戻すか、modsがない場合にはNULLを戻します。

16.1.15 slapi_mods_get_first_smod()

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

16.1.15.1 構文

#include "slapi-plugin.h"
 Slapi_Mod *slapi_mods_get_first_smod(Slapi_Mods *smods,
    Slapi_Mod *smod);

16.1.15.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

smod

modを保持するために使用するSlapi_Modへのポインタ

16.1.15.3 戻り値

この関数は、最初のmodをラップしてSlapi_Modへのポインタを戻すか、modが存在しない場合にはNULLを戻します。

16.1.15.4 説明

Slapi_Mods内のmodsに対して処理を繰り返すには、Slapi_Modsラッパーを使用して、この関数をslapi_mods_get_next_smod()と一緒に使用します。

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

特定のSlapi_Modsに対して処理が繰り返される可能性のあるスレッドは、常に1つのみです。

16.1.15.6 関連項目

slapi_mods_get_next_smod()

16.1.16 slapi_mods_get_ldapmods_byref()

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

16.1.16.1 構文

#include "slapi-plugin.h"
 LDAPMod **slapi_mods_get_ldapmods_byref(Slapi_Mods *smods);

16.1.16.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

16.1.16.3 戻り値

この関数は、Slapi_Modsによって所有されるLDAPModNULL終了配列を戻します。

16.1.16.4 説明

この関数を使用して、Slapi_Modsに含まれるLDAPModの配列に直接アクセスします。

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

配列の担当は、Slapi_Modsのままとなります。

16.1.16.6 関連項目

slapi_mods_get_ldapmods_passout()

16.1.17 slapi_mods_get_ldapmods_passout()

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

16.1.17.1 構文

#include "slapi-plugin.h"
 LDAPMod **slapi_mods_get_ldapmods_passout(Slapi_Mods *smods);

16.1.17.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

16.1.17.3 戻り値

コール元によって所有される、LDAPModNULL終了配列。

16.1.17.4 説明

Slapi_ModsからLDAPModの配列を取得します。配列の担当は、コール元に転送されます。Slapi_Modsは初期化されていない状態のままとなります。

16.1.17.5 関連項目

slapi_mods_get_ldapmods_byref()

16.1.18 slapi_mods_get_next_mod()

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

16.1.18.1 構文

#include "slapi-plugin.h"
 LDAPMod *slapi_mods_get_next_mod(Slapi_Mods *smods);

16.1.18.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

16.1.18.3 戻り値

この関数は、次のLDAPModへのポインタを戻すか、これ以上存在しない場合にはNULLを戻します。

16.1.18.4 説明

Slapi_Mods内のmodsに対して処理を繰り返すには、この関数をslapi_mods_get_first_mod()と一緒に使用します。これにより、終了するまでLDAPModが毎回戻されます。

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

特定のSlapi_Modsに対して処理が繰り返される可能性のあるスレッドは、常に1つのみです。

16.1.18.6 関連項目

slapi_mods_get_first_mod()

16.1.19 slapi_mods_get_next_smod()

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

16.1.19.1 構文

#include "slapi-plugin.h"
 Slapi_Mod *slapi_mods_get_next_smod(Slapi_Mods *smods,
    Slapi_Mod *smod);

16.1.19.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

smod

modを保持するために使用するSlapi_Modへのポインタ

16.1.19.3 戻り値

この関数は、次のmodをラップしてSlapi_Modへのポインタを戻すか、modsがこれ以上存在しない場合にはNULLを戻します。

16.1.19.4 説明

Slapi_Mods内のmodsに対して処理を繰り返すには、Slapi_Modsラッパーを使用して、この関数をslapi_mods_get_first_smod()と一緒に使用します。

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

特定のSlapi_Modsに対して処理が繰り返される可能性のあるスレッドは、常に1つのみです。

16.1.19.6 関連項目

slapi_mods_get_first_smod()

16.1.20 slapi_mods_get_num_mods()

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

16.1.20.1 構文

#include "slapi-plugin.h"
 int slapi_mods_get_num_mods(const Slapi_Mods *smods);

16.1.20.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

16.1.20.3 戻り値

Slapi_Mods内のmodsの数

16.1.21 slapi_mods_init()

Slapi_Modsを初期化します。

16.1.21.1 構文

#include "slapi-plugin.h"
 void slapi_mods_init(Slapi_Mods *smods, int initCount);

16.1.21.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

initCount

最初に割り当てる変更の数

16.1.21.3 説明

Slapi_Modsを初期化し、空であり、かつ、指定されたmodsの数に対応する領域が最初に確保されるようにします。

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

どれだけの領域が必要となるかが不明な場合は、initCount0を使用します。必要に応じて、Slapi_Modsにより増加されます。

16.1.21.5 関連項目

slapi_mods_done()

16.1.22 slapi_mods_init_byref()

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

16.1.22.1 構文

#include "slapi-plugin.h"
 void slapi_mods_init_byref(Slapi_Mods *smods, LDAPMod **mods);

16.1.22.2 パラメータ

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

smods

初期化されていないSlapi_Modsへのポインタ

mods

LDAPModNULL終了配列

16.1.22.3 説明

LDAPModの配列への参照を含むSlapi_Modsを初期化します。この関数は、Slapi_Mods関数を使用してLDAPMod配列アイテムにアクセスする場合に役立ちます。

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

Slapi_Modsが破棄されても、この配列は破棄されません。参照によって初期化されたSlapi_Modsに、新しいmodsを挿入することはできません。

16.1.22.5 関連項目

slapi_mods_done()

16.1.23 slapi_mods_init_passin()

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

16.1.23.1 構文

#include "slapi-plugin.h"
 void slapi_mods_init_passin(Slapi_Mods *smods, LDAPMod **mods);

16.1.23.2 パラメータ

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

smods

初期化されていないSlapi_Modsへのポインタ

mods

LDAPModNULL終了配列

16.1.23.3 説明

この関数は、LDAPModの配列を渡すことによって、Slapi_Modsを初期化します。この関数は、LDAPModの配列をSlapi_Modsに変換します。

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

配列とその要素の担当は、Slapi_Modsに転送されます。Slapi_Modsが破棄されると、配列とその要素は破棄されます。

16.1.23.5 関連項目

slapi_mods_done()

16.1.24 slapi_mods_insert_after()

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

16.1.24.1 構文

#include "slapi-plugin.h"
 void slapi_mods_insert_after(Slapi_Mods *smods, LDAPMod *mod);

16.1.24.2 パラメータ

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

smods

有効なイテレータの位置のある初期化されたSlapi_Modsへのポインタ

mod

挿入するLDAPModへのポインタ

16.1.24.3 説明

この関数は、Slapi_ModsにおけるSlapi_Modsイテレータの現在の位置の直後に、LDAPModを挿入します。イテレータの位置は変更されません。

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

LDAPModの担当は、Slapi_Modsに転送されます。

この関数は、slapi_mods_init_byref()で初期化されたSlapi_Modsでは使用しないでください。

16.1.25 slapi_mods_insert_at()

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

16.1.25.1 構文

#include "slapi-plugin.h"
 void slapi_mods_insert_at(Slapi_Mods *smods, LDAPMod *mod, int pos);

16.1.25.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

mod

挿入するLDAPModへのポインタ

pos

新しいmodを挿入する位置。最小値は0です。最大値はmodsの現在の数です。

16.1.25.3 説明

この関数は、Slapi_Modsの指定された位置にLDAPModを挿入します。位置0 (ゼロ)は最初のmodを参照します。位置がmodsの現在の数と同じ場合は、追加が発生します。指定された位置以上のmodsは1つずつ上へ移動し、指定された位置は新しく挿入されたmodを参照します。

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

LDAPModの担当は、Slapi_Modsに転送されます。

この関数は、slapi_mods_init_byref()で初期化されたSlapi_Modsでは使用しないでください。

16.1.26 slapi_mods_insert_before()

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

16.1.26.1 構文

#include "slapi-plugin.h"
 void slapi_mods_insert_before(Slapi_Mods *smods, LDAPMod *mod);

16.1.26.2 パラメータ

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

smods

有効なイテレータの位置のある初期化されたSlapi_Modsへのポインタ

mod

挿入するLDAPModへのポインタ

16.1.26.3 説明

Slapi_ModsにおけるSlapi_Modsイテレータの現在の位置の直前に、LDAPModを挿入します。イテレータの位置は変更されません。

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

LDAPModの担当は、Slapi_Modsに転送されます。

この関数は、slapi_mods_init_byref()で初期化されたSlapi_Modsでは使用しないでください。

16.1.27 slapi_mods_insert_smod_at()

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

16.1.27.1 構文

#include "slapi-plugin.h"
 void slapi_mods_insert_smod_at(Slapi_Mods *smods, Slapi_Mod *smod,
    int pos);

16.1.27.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

smod

挿入するSlapi_Modへのポインタ。

pos

Slapi_Modを挿入する位置。最小値は0です。最大値はmodsの現在の数です。

16.1.27.3 説明

この関数は、Slapi_Modsの指定された位置にSlapi_Modを挿入します。位置0 (ゼロ)は最初のmodを参照します。位置がmodsの現在の数と同じ場合は、追加が発生します。指定された位置以上のmodsは1つずつ上へ移動し、指定された位置は新しく挿入されたmodを参照します。

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

Slapi_Modの担当は、Slapi_Modsに転送されます。

この関数は、slapi_mods_init_byref()で初期化されたSlapi_Modsでは使用しないでください。

16.1.28 slapi_mods_insert_smod_before()

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

16.1.28.1 構文

#include "slapi-plugin.h"
 void slapi_mods_insert_smod_before(Slapi_Mods *smods,
    Slapi_Mod *smod);

16.1.28.2 パラメータ

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

smods

有効なイテレータの位置のある初期化されたSlapi_Modsへのポインタ

smod

挿入するSlapi_Modへのポインタ。

16.1.28.3 説明

Slapi_ModsにおけるSlapi_Modsイテレータの現在の位置の直前に、Slapi_Modを挿入します。イテレータの位置は変更されません。

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

Slapi_Modの担当は、Slapi_Modsに転送されます。

この関数は、slapi_mods_init_byref()で初期化されたSlapi_Modsでは使用しないでください。

16.1.29 slapi_mods_iterator_backone()

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

16.1.29.1 構文

#include "slapi-plugin.h"
 void slapi_mods_iterator_backone(Slapi_Mods *smods);

16.1.29.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

16.1.29.3 説明

この関数は、イテレータを1つ前の位置に戻します。

16.1.30 slapi_mods_new()

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

16.1.30.1 構文

#include "slapi-plugin.h"
 Slapi_Mods* slapi_mods_new( void );

16.1.30.2 パラメータ

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

16.1.30.3 戻り値

割り当てられた、初期化されていないSlapi_Modsへのポインタ。

16.1.30.4 説明

この関数は、新しい初期化済Slapi_Modsを割り当てます。

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

この関数は、スタックではなくヒープから割り当てられたSlapi_Modsが必要な場合に使用します。

16.1.30.6 関連項目

slapi_mods_free()

16.1.31 slapi_mods_remove()

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

16.1.31.1 構文

#include "slapi-plugin.h"
 void slapi_mods_remove(Slapi_Mods *smods);

16.1.31.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

16.1.31.3 説明

この関数は、現在のイテレータの位置にあるmodを削除します。

16.1.32 slapi_mods_remove_at()

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

16.1.32.1 構文

#include "slapi-plugin.h"
void slapi_mods_remove_at(Slapi_Mods *smods, int pos);

16.1.32.2 パラメータ

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

smods

初期化されたSlapi_Modsへのポインタ

pos

削除するmodの位置

16.1.32.3 説明

この関数は、Slapi_Mods内の変更に対して処理を繰り返すときにカウントすることによって取得した、posイテレータの位置にあるmodを削除します。

16.1.33 slapi_mr_filter_index()

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

16.1.33.1 構文

#include "slapi-plugin.h"
int slapi_mr_filter_index(Slapi_Filter* f, Slapi_PBlock* pb);

16.1.33.2 パラメータ

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

f

一致ルールOIDを含むフィルタ

pb

フィルタ索引関数に渡すパラメータ・ブロック

16.1.33.3 説明

この関数を使用すると、プラグインで一致ルールのフィルタ索引関数をコールできます。

16.1.33.4 戻り値

この関数は、正常終了した場合は0を戻します。フィルタ内のルールに使用できるフィルタ索引関数がない場合は、LDAP_UNAVAILABLE_CRITICAL_EXTENSIONを戻します。パラメータ・ブロック引数の設定について重大な問題がある場合は、-1を戻します。

16.1.34 slapi_mr_indexer_create()

一致ルールのインデクサ・ファクトリ関数へのポインタをパラメータ・ブロックに設定します。

16.1.34.1 構文

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

16.1.34.2 パラメータ

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

pb

SLAPI_PLUGIN_MR_OIDに影響を及ぼした一致ルールのオブジェクト識別子を含むパラメータ・ブロック

16.1.34.3 説明

この関数を使用すると、プラグインで一致ルールのインデクサ・ファクトリ関数をコールできます。成功した場合、この関数により、pbSLAPI_PLUGIN_MR_INDEXER_CREATE_FNが、インデクサ・ファクトリ関数を指すように設定されます。

16.1.34.4 戻り値

この関数は、正常終了した場合は0を戻します。一致ルールに使用できるインデクサ・ファクトリ関数がない場合は、LDAP_UNAVAILABLE_CRITICAL_EXTENSIONを戻します。パラメータ・ブロック引数の取得または設定について重大な問題がある場合は、-1を戻します。

16.1.35 slapi_new_condvar()

条件変数を割り当てます。

16.1.35.1 構文

#include "slapi-plugin.h"
Slapi_CondVar *slapi_new_condvar( Slapi_Mutex *mutex );

16.1.35.2 パラメータ

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

mutex

ブロックに使用されるmutex

16.1.35.3 説明

この関数を使用すると、待機と通知のメカニズムを使用したスレッド同期を実行できます。

16.1.35.4 戻り値

成功した場合、この関数は新しい条件変数へのポインタを戻します。それ以外の場合はNULLを戻します。

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

条件変数を作成するにはこの関数をコールし、条件変数を解放するにはslapi_destroy_condvar()をコールします。

16.1.36 slapi_new_mutex()

mutexを割り当てます。

16.1.36.1 構文

#include "slapi-plugin.h"
Slapi_Mutex *slapi_new_mutex( void );

16.1.36.2 戻り値

成功した場合、この関数は新しいmutexへのポインタを戻します。それ以外の場合はNULLを戻します。

16.1.36.3 説明

この関数を使用すると、スレッド同期を実行できます。1つのスレッドがslapi_lock_mutex()を使用してmutexをロックすると、ロックの取得を試行する他のスレッドは、mutexを保持するスレッドによってslapi_unlock_mutex()がコールされるまでブロックされます。

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

mutexを解放するには、slapi_destroy_mutex()をコールします。

16.1.36.5 関連項目

slapi_destroy_mutex()

slapi_lock_mutex()

16.1.37 slapi_notify_condvar()

条件変数における変更を通知します。

16.1.37.1 構文

#include "slapi-plugin.h"
int slapi_notify_condvar( Slapi_CondVar *cvar, int notify_all );

16.1.37.2 パラメータ

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

cvar

変更された条件変数。

notify_all

NULLを指定すると、通知を待機している次のスレッドにのみ通知されます。それ以外の場合、すべてのスレッドに通知されます。

16.1.37.3 説明

この関数を使用すると、待機と通知のメカニズムを使用したスレッド同期を実行できます。

16.1.37.4 戻り値

成功した場合、この関数は1を戻します。それ以外の場合はNULLを戻します。

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

条件変数への変更を待機するには、slapi_wait_condvar()をコールします。

16.1.38 slapi_op_abandoned()

クライアントが現在の操作(パラメータ・ブロックに渡される操作)を中止したかどうかを判別します。

16.1.38.1 構文

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

16.1.38.2 パラメータ

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

pb

現在の操作から渡されるパラメータ・ブロック

16.1.38.3 説明

この関数を使用すると、パラメータ内のPBlockに関連付けられた操作が中止されたかどうかを確認できます。この関数は、長時間実行されるプラグインからの操作ステータスを定期的に確認する場合に役立ちます。

16.1.38.4 戻り値

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

  • 操作が中止された場合には、1

  • 操作が中止されなかった場合には、0

16.1.39 slapi_op_get_type()

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

16.1.39.1 構文

#include "slapi-plugin.h"
unsigned long slapi_op_get_type(Slapi_Operation * op);

16.1.39.2 パラメータ

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

op

タイプの取得元となる操作

16.1.39.3 説明

この関数は、操作のタイプを戻します。slapi_pblock_get()Slapi_Operationパラメータとともに使用すると、pblock構造体からSlapi_Operation構造体を抽出できます。次に例を示します。

slapi_pblock_get (pb, SLAPI_OPERATION, &op);

16.1.39.4 戻り値

この関数は、次の操作タイプのいずれかを戻します。

  • SLAPI_OPERATION_BIND

  • SLAPI_OPERATION_UNBIND

  • SLAPI_OPERATION_SEARCH

  • SLAPI_OPERATION_MODIFY

  • SLAPI_OPERATION_ADD

  • SLAPI_OPERATION_DELETE

  • SLAPI_OPERATION_MODDN

  • SLAPI_OPERATION_MODRDN

  • SLAPI_OPERATION_COMPARE

  • SLAPI_OPERATION_ABANDON

  • SLAPI_OPERATION_EXTENDED

16.1.39.5 関連項目

slapi_pblock_get()

16.1.40 slapi_pblock_destroy()

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

16.1.40.1 構文

#include "slapi-plugin.h"
void slapi_pblock_destroy( Slapi_PBlock *pb );

16.1.40.2 パラメータ

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

pb

解放するパラメータ・ブロック

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

解放するパラメータ・ブロックは、slapi_pblock_new()を使用して作成されている必要があります。スタックに割り当てられたパラメータ・ブロック、Slapi_PBlock pb;または別のメモリー・アロケータとともにこの関数を使用することはサポートされておらず、使用した場合、メモリー・エラーやメモリー・リークが発生する可能性があります。次に例を示します。

Slapi_PBlock *pb = malloc(sizeof(Slapi_PBlock));

この関数をコールした後、解放されたメモリーが関数コンテキストで再利用されないように、次のようにパラメータ・ブロックのポインタをNULLに設定する必要があります。

slapi_pblock_destroy(pb);
pb = NULL;

ポインタをこのように再利用すると、なんらかの困難な方法を使用してメモリー・リークや他の異常な動作を検出するよりも、セグメンテーション・フォルトの識別が簡単になります。

この関数は、NULLポインタを指定してコールすると安全です。次に例を示します。

Slapi_PBlock *pb = NULL;
slapi_pblock_destroy(pb);

これにより、slapi_pblock_destroy()をコールする前にNULLを確認する必要がなくなります。

16.1.40.4 関連項目

slapi_pblock_new()

16.1.41 slapi_pblock_get()

パラメータ・ブロックから、名前/値ペアの値を取得します。

16.1.41.1 構文

#include "slapi-plugin.h"
int slapi_pblock_get( Slapi_PBlock *pb, int arg, void *value );

16.1.41.2 パラメータ

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

pb

パラメータ・ブロックです。

arg

取得する名前/値ペアのID。指定できるIDのリストは、第14章「データ型と構造体のリファレンス」を参照してください。

value

パラメータ・ブロックから取得される値へのポインタ。

16.1.41.3 戻り値

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

  • 正常終了した場合は0

  • エラーが発生した場合には、-1 (無効なIDが指定された場合など)

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

void *value引数は、常に、取得する値のタイプへのポインタである必要があります。

int connid = 0;
...
retval = slapi_pblock_get(pb, SLAPI_CONN_ID, &connid);

SLAPI_CONN_IDは整数値であるため、値を取得するには、整数へのポインタまたはその整数のアドレスを渡します。同様に、char * value (文字列)については、その値へのポインタまたはその値のアドレスを渡します。次に例を示します。

char *binddn = NULL;
...
retval = slapi_pblock_get(pb, SLAPI_CONN_DN, &binddn);

一部のプラットフォームで特定のコンパイラを使用する場合には、値を(void *)にキャストすることが必要となることがあります。

slapi_pblock_get()のコールが失敗した場合に、初期化されていないメモリーからの読取りを回避するために、slapi_pblock_get()をコールする前に、この値を0またはNULLにすることをお薦めします。

ほとんどの場合、コール元で戻り値を解放しないようにする必要があります。値は、通常、内部的に解放されるか、またはslapi_pblock_destroy()のコールを介して解放されます。例外は、コール元によって、slapi_pblock_set()を介して値が明示的に設定される場合です。この場合は、コール元がメモリー管理を担当します。値が解放される場合、解放後、値NULLを使用してslapi_pblock_set()をコールすることをお薦めします。次に例を示します。

char *someparam = NULL;
...
someparam = slapi_ch_strdup(somestring);
slapi_pblock_set(pb, SOME_PARAM, someparam);
someparam = NULL; /* avoid dangling reference */
...
slapi_pblock_get(pb, SOME_PARAM, &someparam);
slapi_pblock_set(pb, SOME_PARAM, NULL); /* Make sure no one else
                                              references this. */
slapi_ch_free_string(&someparam);
...

一部の内部関数では渡された値が変更される場合があるため、潜在的に不確定なポインタに依存するのではなく、slapi_pblock_get()を使用して値を再度取得することをお薦めします。このことは前述の例に示されており、この例では、someparamをパラメータ・ブロックで設定した後にNULLに設定しています。

16.1.42 slapi_pblock_new()

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

16.1.42.1 構文

#include "slapi-plugin.h"
 Slapi_PBlock *slapi_pblock_new();

16.1.42.2 戻り値

新しいパラメータ・ブロックへのポインタ

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

slapi_pblock_new()によって割り当てられたパラメータ・ブロックのポインタは、常にslapi_pblock_destroy()によって解放される必要があります。free()などのメモリーを解放する他の関数はサポートされておらず、使用するとクラッシュやメモリー・リークが発生する可能性があります。

16.1.43 slapi_pblock_set()

パラメータ・ブロックに名前/値ペアの値を設定します。

16.1.43.1 構文

#include "slapi-plugin.h"
int slapi_pblock_set( Slapi_PBlock *pb, int arg, void *value );

16.1.43.2 パラメータ

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

pb

パラメータ・ブロックです。

arg

設定する名前/値ペアのID。指定できるIDのリストは、第14章「データ型と構造体のリファレンス」を参照してください。

value

パラメータ・ブロックに設定する値へのポインタ。

16.1.43.3 戻り値

この関数は、成功した場合には0を戻し、エラーが発生した場合(無効なIDが指定された場合など)には-1を戻します。

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

渡される値は、整数の引数の場合も、常にポインタである必要があります。たとえば、ManageDSAITコントロールを使用して検索を実行する場合は、次のようになります。

int managedsait = 1;
...
slapi_pblock_set(pb, SLAPI_MANAGEDSAIT, &managedsait);

次の例のようなコールでは、クラッシュが発生します。

slapi_pblock_set(pb, SLAPI_MANAGEDSAIT, 1);

ただし、char * stringschar **arraysSlapi_Backend *などのすでにポインタである値の場合、値を直接渡すことができます。次に例を示します。

char *target_dn = slapi_ch_strdup(some_dn);
slapi_pblock_set(pb, SLAPI_TARGET_DN, target_dn);

または、

slapi_pblock_set(pb, SLAPI_TARGET_DN, NULL);

使用するコンパイラによっては、値の引数を(void *)にキャストする必要があります。

コール元が渡されたメモリーを割り当てる場合、コール元がこのメモリーの解放を担当します。また、潜在的に不確定なポインタに依存するのではなく、slapi_pblock_get()を使用して、解放する値を取得することもお薦めします。詳細は、slapi_pblock_get()の例を参照してください。

プラグインを登録するパラメータを設定する場合、プラグイン・パラメータの多くはタイプに依存するため、通常、最初にプラグイン・タイプを設定する必要があります。たとえば、プラグインに拡張操作OIDのリストを設定する前に、SLAPI_PLUGIN_TYPEを拡張操作に設定します。

16.1.43.5 関連項目

slapi_pblock_get()

16.1.44 slapi_pw_find_sv()

指定されたパスワードが、属性のハッシュ値のいずれかと一致するかどうかを判別します。たとえば、この関数をコールして、指定されたパスワードがuserpassword属性の値と一致するかどうかを判別できます。

16.1.44.1 構文

#include "slapi-plugin.h"
int slapi_pw_find_sv( Slapi_Value **vals, const Slapi_Value *v );

16.1.44.2 パラメータ

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

vals

userpasswordなどのパスワードを格納する属性の値を保持するSlapi_Value構造体ポインタの配列へのポインタ

v

確認するパスワードを含むSlapi_Value構造体へのポインタ

たとえば、パラメータ・ブロック内のSLAPI_BIND_CREDENTIALSパラメータからこの値を取得し、slapi_value_init_berval()を使用してSlapi_Valueを作成できます。

16.1.44.3 戻り値

この関数は、vによって指定されたパスワードがvalsで見つかった場合には0を戻し、パスワードvvalsで見つからなかった場合にはゼロ以外の値を戻します。

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

確認するエントリに含まれるuserpassword属性のパスワード値の正確な数を保持するようにサイズ設定されたvalsに、Slapi_Value構造体の配列を割り当てたり解放する必要があります。結果として得られる配列が、NULLで終了することはありません。より単純なメモリー割当てモデルにおいては、かわりにslapi_pw_find_valueset()を使用します。

16.1.44.5 説明

userpassword属性内のエントリのパスワードがサーバーに格納される場合、パスワードは異なるスキームを使用してハッシュされます。

指定されたパスワードがuserpassword属性のいずれかの値であるかどうかを判別するには、この関数を使用します。この関数は、パスワードを格納するのに使用されたパスワード・スキームを判別し、適切な比較関数を使用して、指定された値をuserpassword属性のハッシュ値と比較します。

16.1.44.6 関連項目

slapi_pw_find_valueset()

16.1.45 slapi_pw_find_valueset()

指定されたパスワードが、属性のハッシュ値のいずれかと一致するかどうかを判別します。たとえば、この関数をコールして、指定されたパスワードがuserpassword属性の値と一致するかどうかを判別できます。

16.1.45.1 構文

#include "slapi-plugin.h"
 int slapi_pw_find_valueset(Slapi_Valueset *valset,
    const Slapi_Value *v);

16.1.45.2 パラメータ

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

valset

userpasswordなどのパスワードを格納する属性の値を含むSlapi_ValueSet構造体へのポインタ

v

確認するパスワードを含むSlapi_Value構造体へのポインタ

たとえば、パラメータ・ブロック内のSLAPI_BIND_CREDENTIALSパラメータからこの値を取得し、slapi_value_init_berval()を使用してSlapi_Valueを作成できます。

16.1.45.3 戻り値

この関数は、vによって指定されたパスワードがvalsetで見つかった場合には0を戻し、パスワードvvalsetで見つからなかった場合にはゼロ以外の値を戻します。

16.1.45.4 説明

userpassword属性内のエントリのパスワードがサーバーに格納される場合、パスワードは異なるスキームを使用してハッシュされます。

指定されたパスワードがuserpassword属性のいずれかの値であるかどうかを判別するには、この関数を使用します。この関数は、パスワードを格納するのに使用されたパスワード・スキームを判別し、適切な比較関数を使用して、指定された値をuserpassword属性のハッシュ値と比較します。

16.1.45.5 関連項目

slapi_pw_find_sv()

16.1.46 slapi_rdn_add()

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

16.1.46.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_add(Slapi_RDN *rdn, const char *type,
    const char *value);

16.1.46.2 パラメータ

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

rdn

ターゲットのSlapi_RDN構造体。

type

追加するRDNのタイプ(cnoouなど)。このパラメータをNULLにすることはできません。

value

追加するRDNの値。このパラメータをNULLにすることはできません。

16.1.46.3 戻り値

通常、この関数は1を戻します。

16.1.46.4 説明

この関数は、新しいタイプ/値ペアを既存のRDNに追加し、rdnが空の場合には新しいRDNとしてタイプ/値ペアを設定します。この関数ではFLAG_RDNSフラグをリセットし、これにより、Slapi_RDN構造体内のRDN配列が、新しいRDNと比較して最新の状態でなくなったことが示されます。

16.1.46.5 関連項目

slapi_rdn_get_num_components()

16.1.47 slapi_rdn_compare()

2つのRDNを比較します。

16.1.47.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_compare(Slapi_RDN *rdn1, Slapi_RDN *rdn2);

16.1.47.2 パラメータ

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

rdn1

比較する最初のRDN

rdn2

比較する2番目のRDN

16.1.47.3 戻り値

この関数は、rdn1およびrdn2が同じRDNコンポーネントを含む場合には0を戻し、含まない場合には-1を戻します。

16.1.47.4 説明

この関数は、rdn1rdn2を比較します。rdn1rdn2が同じRDNであるとみなされる場合、これらのコンポーネントは必ずしも同じ順序である必要はありません。

16.1.48 slapi_rdn_contains()

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

16.1.48.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_contains(Slapi_RDN *rdn, const char *type,
    const char *value,size_t length);

16.1.48.2 パラメータ

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

rdn

RDN値を含むSlapi_RDN構造体。

type

検索するRDNのタイプ(cnoouなど)。

value

検索するRDNの値。

length

RDNの検索時に文字列操作に考慮する必要があるvalueの長さを指定します。

16.1.48.3 戻り値

この関数は、rdntypevalueおよびlengthと一致するRDNが含まれる場合には1を戻し、必要なタイプ/値と一致するRDNが含まれない場合には0を戻します。

16.1.48.4 説明

この関数は、パラメータで指定されたtypevalueの両方と一致する、Slapi_RDN構造体rdn内のRDNを検索します。この関数はslapi_rdn_get_index()をコールして、戻り値が-1以外の値であることを検証します。

16.1.49 slapi_rdn_contains_attr()

Slapi_RDN構造体に、指定されたタイプと一致するRDNが含まれるかどうかを確認して、trueの場合には対応する属性値を取得します。

16.1.49.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_contains_attr(Slapi_RDN *rdn, const char *type,
    char **value);

16.1.49.2 パラメータ

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

rdn

RDN値を含むSlapi_RDN構造体。

type

検索するRDNのタイプ(cnoouなど)。

value

タイプがパラメータtypeのコンテンツと一致する最初のRDNの値を保持するリポジトリ。関数の戻り値でこのパラメータがNULLの場合、必要なタイプを含むRDNはrdn内に存在しません。

16.1.49.3 戻り値

この関数は、指定されたタイプと一致するRDNがrdnに含まれる場合には1を戻し、一致しない場合には0を戻します。

16.1.49.4 説明

この関数は、パラメータで指定されたタイプと一致する、Slapi_RDN構造体rdn内のRDNを検索します。この関数はslapi_rdn_get_index_attr()をコールして、戻り値が-1以外の値であることを検証します。成功した場合、対応する属性値も戻します。

16.1.50 slapi_rdn_done()

Slapi_RDN構造体のインスタンスを消去します。

16.1.50.1 構文

#include "slapi-plugin.h"
 void slapi_rdn_done(Slapi_RDN *rdn);

16.1.50.2 パラメータ

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

rdn

消去する構造体へのポインタ

16.1.50.3 説明

この関数は、Slapi_RDN構造体のコンテンツを消去します。これにより、RDN値と分割されたRDNの配列の両方が解放されます。次に、これらのポインタはNULLに設定されます。

16.1.50.4 関連項目

slapi_rdn_free()

slapi_rdn_init()

16.1.51 slapi_rdn_free()

Slapi_RDN構造体を解放します。

16.1.51.1 構文

#include "slapi-plugin.h"
 void slapi_rdn_free(Slapi_RDN **rdn);

16.1.51.2 パラメータ

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

rdn

解放するSlapi_RDN構造体のポインタへのポインタ

16.1.51.3 説明

この関数は、Slapi_RDN構造体のコンテンツと、rdnのコンテンツが指す構造体自体の両方を解放します。

16.1.51.4 関連項目

slapi_rdn_done()

slapi_rdn_new()

16.1.52 slapi_rdn_get_first()

Slapi_RDN構造体に格納されている最初のRDNに対応するタイプ/値ペアを取得します。

16.1.52.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_get_first(Slapi_RDN *rdn, char **type, char **value);

16.1.52.2 パラメータ

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

rdn

RDN値を含むSlapi_RDN構造体。

type

最初のRDNのタイプを保持するリポジトリ。関数の戻り値でこのパラメータがNULLの場合、rdnは空です。

value

最初のRDNのタイプを保持するリポジトリ。関数の戻り値でこのパラメータがNULLの場合、rdnは空です。

16.1.52.3 戻り値

この関数は、rdnが空の場合には-1を戻し、操作が成功した場合には1を戻します。

16.1.52.4 説明

この関数は、rdnに格納された最初のRDNに対応するタイプ/値ペアを取得します。たとえば、RDNがcn=Joeyである場合、関数はtype戻りパラメータにcnを配置し、valueJoeyを配置します。

16.1.52.5 関連項目

slapi_rdn_get_next()

slapi_rdn_get_rdn()

16.1.53 slapi_rdn_get_index()

指定されたタイプおよび値を含むRDNの後に位置するRDNの索引を取得します。

16.1.53.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_get_index(Slapi_RDN *rdn, const char *type,
    const char *value, size_t length);

16.1.53.2 パラメータ

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

rdn

RDN値を含むSlapi_RDN構造体。

type

検索するRDNのタイプ(cnoouなど)。

value

検索するRDNの値。

length

RDNの検索時に文字列比較に考慮する必要があるvalueの長さを指定します。一致するRDN値は、指定された長さ以内である必要があります。

16.1.53.3 戻り値

この関数は、パラメータtypeおよびvalueのコンテンツと一致するRDNの後に位置するRDNの索引を戻します。rdnに格納されたRDNが指定された値/タイプペアと一致しない場合、-1を戻します。

16.1.53.4 説明

この関数は、パラメータで指定されたtypevalueの両方と一致する、Slapi_RDN構造体rdn内のRDNを検索します。成功した場合、一致するRDNの位置を戻します。

16.1.54 slapi_rdn_get_index_attr()

指定されたタイプと一致する、Slapi_RDN構造体内の最初のRDNの位置および属性値を取得します。

16.1.54.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_get_index_attr(Slapi_RDN *rdn, const char *type,
    char **value);

16.1.54.2 パラメータ

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

rdn

RDN値を含むSlapi_RDN構造体。

type

検索するRDNのタイプ(cnoouなど)。

value

タイプがパラメータtypeのコンテンツと一致する最初のRDNの値を保持するリポジトリ。関数の戻り値でこのパラメータがNULLの場合、RDNはrdn内に存在しません。

16.1.54.3 戻り値

この関数は、コンテンツ・タイプと一致するRDNがない場合には-1を戻し、typeのコンテンツと一致する場合にはRDN内の最初のRDNの実際の位置を戻します。

16.1.54.4 説明

この関数は、パラメータで指定されたタイプと一致する、Slapi_RDN構造体rdn内のRDNを検索します。成功した場合、一致するRDNの位置および対応する属性値を戻します。

16.1.54.5 関連項目

slapi_rdn_get_index()

16.1.55 slapi_rdn_get_next()

Slapi_RDN構造体に格納されたRDN内から、特定のRDNのタイプ/値ペアを取得します。

16.1.55.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_get_next(Slapi_RDN *rdn, int index, char **type,
    char **value);

16.1.55.2 パラメータ

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

rdn

RDN値を含むSlapi_RDN構造体。

index

現在必要なRDNに先行するRDNの位置を示します。

type

次(index+1)のRDNのタイプ(cnoouなど)を保持するリポジトリ。関数の戻り値でこのパラメータがNULLの場合、RDNは存在しません。

value

次(index+1)のRDNの値を保持するリポジトリ。このパラメータがNULLの場合、RDNは存在しません。

16.1.55.3 戻り値

この関数は、索引の位置にRDNがない場合には-1を戻し、操作が成功した場合には取得したRDNの実際の位置を戻します。

16.1.55.4 説明

この関数は、rdn内の次(index+1)の位置に格納されたRDNに対応するタイプ/値ペアを取得します。値の配列内にある要素の索引は、常に、配列における実際の位置の下にある1つの単位です。

16.1.56 slapi_rdn_get_num_components()

Slapi_RDN構造体に存在する、RDNのタイプ/値ペアの数を取得します。

16.1.56.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_get_num_components(Slapi_RDN *rdn);

16.1.56.2 パラメータ

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

rdn

ターゲットのSlapi_RDN構造体。

16.1.56.3 戻り値

この関数は、rdnに存在する、RDNのタイプ/値ペアの数を戻します。

16.1.56.4 関連項目

slapi_rdn_add()

16.1.57 slapi_rdn_get_rdn()

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

16.1.57.1 構文

#include "slapi-plugin.h"
 const char *slapi_rdn_get_rdn(const Slapi_RDN *rdn);

16.1.57.2 パラメータ

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

rdn

RDN値を保持するSlapi_RDN構造体

16.1.57.3 戻り値

この関数はRDN値を戻します。

16.1.58 slapi_rdn_init()

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

16.1.58.1 構文

#include "slapi-plugin.h"
 void slapi_rdn_init(Slapi_RDN *rdn);

16.1.58.2 パラメータ

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

rdn

初期化するSlapi_RDN構造体

16.1.58.3 説明

この関数は、NULL値を使用してSlapi_RDN構造体を初期化します(RDN値と分割されたRDNの配列の両方がNULLに設定されます)。

16.1.59 slapi_rdn_init_dn()

指定したDNから取得されるRDN値を使用して、Slapi_RDN構造体を初期化します。

16.1.59.1 構文

#include "slapi-plugin.h"
 void slapi_rdn_init_dn(Slapi_RDN *rdn,const char *dn);

16.1.59.2 パラメータ

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

rdn

初期化するSlapi_RDN構造体

dn

新しいSlapi_RDN構造体を初期化するために使用されるRDNを含むDN値

16.1.59.3 説明

この関数は、dnパラメータで渡されたDNから取得されるRDN値を使用して、指定されたSlapi_RDN構造体を初期化します。

16.1.60 slapi_rdn_init_rdn()

RDN値を使用して、Slapi_RDN構造体を初期化します。

16.1.60.1 構文

#include "slapi-plugin.h"
 void slapi_rdn_init_rdn(Slapi_RDN *rdn,const Slapi_RDN *fromrdn);

16.1.60.2 パラメータ

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

rdn

初期化するSlapi_RDN構造体

fromrdn

新しいSlapi_RDN構造体で設定されるRDN値

16.1.60.3 説明

この関数は、fromrdnのRDN値を使用して、指定されたSlapi_RDN構造体を初期化します。

16.1.60.4 関連項目

slapi_rdn_init_dn()

slapi_rdn_init_sdn()

16.1.61 slapi_rdn_init_sdn()

指定されたSlapi_DN構造体に含まれたDNから取得されるRDN値を使用して、Slapi_RDN構造体を初期化します。

16.1.61.1 構文

#include "slapi-plugin.h"
 void slapi_rdn_init_sdn(Slapi_RDN *rdn,const Slapi_DN *sdn);

16.1.61.2 パラメータ

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

rdn

初期化するSlapi_RDN構造体

sdn

新しいSlapi_RDN構造体を初期化するために使用されるRDNを含むDN値が含まれたSlapi_DN構造体

16.1.61.3 説明

この関数は、sdnパラメータのSlapi_DN構造体内で渡されたDNから取得されるRDN値を使用して、指定されたSlapi_RDN構造体を初期化します。

16.1.61.4 関連項目

slapi_rdn_init_dn()

slapi_rdn_init_rdn()

16.1.62 slapi_rdn_isempty()

RDN値がSlapi_RDN構造体に格納されているかどうかを確認します。

16.1.62.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_isempty(const Slapi_RDN *rdn);

16.1.62.2 パラメータ

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

rdn

ターゲットのSlapi_RDN構造体。

16.1.62.3 戻り値

この関数は、RDN値が存在しない場合には1を戻し、rdnに値が含まれる場合には0を戻します。

16.1.63 slapi_rdn_new()

新しいSlapi_RDN構造体を割り当てて、値をNULLに初期化します。

16.1.63.1 構文

#include "slapi-plugin.h"
 Slapi_RDN * slapi_rdn_new();

16.1.63.2 パラメータ

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

16.1.63.3 戻り値

この関数は、新しく割り当てられた空のままのSlapi_RDN構造体へのポインタを戻します。

16.1.63.4 説明

この関数は、必要なメモリーを割り当てて、RDN値と分割されたRDNの配列の両方をNULLに初期化することによって、新しいSlapi_RDN構造体を作成します。

16.1.64 slapi_rdn_new_dn()

新しいSlapi_RDN構造体を作成して、指定されたDNから取得されるRDN値を設定します。

16.1.64.1 構文

#include "slapi-plugin.h"
 Slapi_RDN *slapi_rdn_new_dn(const char *dn);

16.1.64.2 パラメータ

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

dn

新しいSlapi_RDN構造体を初期化するために使用されるRDNを含むDN値

16.1.64.3 戻り値

この関数は、dnのDN値から取得されるRDNを使用して初期化された、新しいSlapi_RDN構造体へのポインタを戻します。

16.1.64.4 説明

この関数は、新しいSlapi_RDN構造体を作成し、dnパラメータで渡されたDNから取得される値を使用してそのRDNを初期化します。

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

メモリーは、関数自体によって割り当てられます。

16.1.64.6 関連項目

slapi_rdn_new_rdn()

slapi_rdn_new_sdn()

16.1.65 slapi_rdn_new_rdn()

新しいSlapi_RDN構造体を作成して、RDN値を設定します。

16.1.65.1 構文

#include "slapi-plugin.h"
 Slapi_RDN * slapi_rdn_new_rdn(const Slapi_RDN *fromrdn);

16.1.65.2 パラメータ

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

fromrdn

新しいSlapi_RDN構造体で設定されるRDN値

16.1.65.3 戻り値

この関数は、fromrdnのコンテンツに設定されたRDNを含む、新しいSlapi_RDN構造体へのポインタを戻します。

16.1.65.4 説明

この関数は、新しいSlapi_RDN構造体を作成し、fromrdnの値を使用してそのRDNを初期化します。

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

メモリーは、関数自体によって割り当てられます。

16.1.65.6 関連項目

slapi_rdn_new_dn()

slapi_rdn_new_sdn()

16.1.66 slapi_rdn_new_sdn()

新しいSlapi_RDN構造体を作成して、指定されたSlapi_RDN構造体に含まれたDNから取得されるRDN値を設定します。

16.1.66.1 構文

#include "slapi-plugin.h"
 vSlapi_RDN *slapi_rdn_new_sdn(const Slapi_DN *sdn);

16.1.66.2 パラメータ

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

sdn

新しいSlapi_RDN構造体を初期化するために使用されるRDNを含むDN値が含まれたSlapi_RDN構造体

16.1.66.3 戻り値

この関数は、dnのDN値から取得されるRDNを使用して初期化された、新しいSlapi_RDN構造体へのポインタを戻します。

16.1.66.4 説明

この関数は、新しいSlapi_RDN構造体を作成して、sdnパラメータのSlapi_RDN構造体内で渡されたDNから取得される値を使用して、そのRDNを初期化します。

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

メモリーは、関数自体によって割り当てられます。

16.1.66.6 関連項目

slapi_rdn_new_dn()

slapi_rdn_new_rdn()

16.1.67 slapi_rdn_remove()

Slapi_RDN構造体から、RDNのタイプ/値ペアを削除します。

16.1.67.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_remove(Slapi_RDN *rdn, const char *type,
 const char *value, size_t length);

16.1.67.2 パラメータ

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

rdn

ターゲットのSlapi_RDN構造体。

type

検索するRDNのタイプ(cnoouなど)。

value

検索するRDNの値。

length

RDNの検索時に文字列比較に考慮する必要があるvalueの長さを指定します。

16.1.67.3 戻り値

この関数は、RDNがrdnから削除された場合には1を戻し、RDNが削除されなかった場合には0を戻します。

16.1.67.4 説明

この関数は、指定された基準(typevalueおよびlength)と一致するRDNをrdnから削除します。

16.1.68 slapi_rdn_remove_attr()

Slapi_RDN構造体から、RDNのタイプ/値ペアを削除します。

16.1.68.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_remove_attr(Slapi_RDN *rdn, const char *type);

16.1.68.2 パラメータ

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

rdn

ターゲットのSlapi_RDN構造体。

type

検索するRDNのタイプ(cnoouなど)。

16.1.68.3 戻り値

この関数は、RDNがrdnから削除された場合には1を戻し、RDNが削除されなかった場合には0を戻します。

16.1.68.4 説明

この関数は、指定されたタイプと一致する最初のRDNをrdnから削除します。

16.1.69 slapi_rdn_remove_index()

Slapi_RDN構造体から、RDNのタイプ/値ペアを削除します。

16.1.69.1 構文

#include "slapi-plugin.h"
 int slapi_rdn_remove_index(Slapi_RDN *rdn, int atindex);

16.1.69.2 パラメータ

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

rdn

ターゲットのSlapi_RDN構造体。

atindex

削除するRDNのタイプ/値ペアの索引

16.1.69.3 戻り値

この関数は、RDNがrdnから削除された場合には1を戻し、rdnが空であるか、または索引が存在するRDNの数を上回ることが原因でRDNが削除されなかった場合には0を戻します。

16.1.69.4 説明

この関数は、atindex索引を使用して、(atindex+1の位置に配置された)RDNをrdnから削除します。

16.1.70 slapi_rdn_set_dn()

Slapi_RDN構造体にRDN値を設定します。

16.1.70.1 構文

#include "slapi-plugin.h"
 void slapi_rdn_set_dn(Slapi_RDN *rdn,const char *dn);

16.1.70.2 パラメータ

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

rdn

ターゲットのSlapi_RDN構造体。

dn

rdnに設定されるRDNを含むDN値

16.1.70.3 説明

この関数は、Slapi_RDN構造体にRDN値を設定します。構造体はメモリーから解放され、新しいRDNを設定する前に、以前のコンテンツすべてから解放されます。新しいRDNは、dnパラメータに存在するDN値から取得されます。

16.1.70.4 関連項目

slapi_rdn_set_rdn()

slapi_rdn_set_sdn()

16.1.71 slapi_rdn_set_rdn()

Slapi_RDN構造体にRDNを設定します。

16.1.71.1 構文

#include "slapi-plugin.h"
 void slapi_rdn_set_rdn(Slapi_RDN *rdn,const Slapi_RDN *fromrdn);

16.1.71.2 パラメータ

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

rdn

ターゲットのSlapi_RDN構造体。

fromrdn

RDNの取得元のSlapi_RDN構造体

16.1.71.3 説明

この関数は、Slapi_RDN構造体にRDN値を設定します。構造体はメモリーから解放され、新しいRDNを設定する前に、以前のコンテンツすべてから解放されます。

16.1.71.4 関連項目

slapi_rdn_set_dn()

slapi_rdn_set_sdn()

16.1.72 slapi_rdn_set_sdn()

Slapi_RDN構造体にRDN値を設定します。

16.1.72.1 構文

#include "slapi-plugin.h"
 void slapi_rdn_set_sdn(Slapi_RDN *rdn,const Slapi_DN *sdn);

16.1.72.2 パラメータ

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

rdn

ターゲットのSlapi_RDN構造体。

sdn

RDNの取得元のSlapi_DN構造体

16.1.72.3 説明

この関数は、Slapi_RDN構造体にRDN値を設定します。構造体はメモリーから解放され、新しいRDNを設定する前に、以前のコンテンツすべてから解放されます。新しいRDNは、Slapi_DN構造体の内部に存在するDN値から取得されます。

16.1.72.4 関連項目

slapi_rdn_set_dn()

slapi_rdn_set_rdn()

16.1.73 slapi_rdn_syntax_check()

この関数は、RDNの値が属性構文ルールに準拠しているかどうかを判別します。

16.1.73.1 構文

#include "slapi-plugin.h"
int slapi_rdn_syntax_check( Slapi_PBlock *pb, const char *rdn );

16.1.73.2 パラメータ

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

pb

パラメータ・ブロックです。

rdn

準拠を確認する値

16.1.73.3 戻り値

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

  • rdnが準拠しているか、構文チェックがオフになっている場合には、0

  • rdnが属性構文ルールに準拠していない場合には、1

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

pb引数にはNULLを指定できます。これは、SLAPI_IS_REPLICATED_OPERATIONフラグを取得する場合にのみ使用します。このフラグが存在する場合は、構文チェックが行われません。

16.1.74 slapi_register_object_extension()

オブジェクトの拡張を登録します。

16.1.74.1 構文

#include "slapi-plugin.h"
int slapi_register_object_extension(
    const char *pluginname,
    const char *objectname,
    slapi_extension_constructor_fnptr constructor,
    slapi_extension_destructor_fnptr destructor,
    int *objecttype,
    int *extensionhandle);

16.1.74.2 パラメータ

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

pluginname

プラグインを識別する文字列。

objectname

プライベート・データを接続に追加するSLAPI_EXT_CONNECTIONやプライベート・データを操作に追加するSLAPI_EXT_OPERATIONなどの、拡張するオブジェクトの名前。

constructor

オブジェクトの拡張にメモリーを割り当てて拡張を作成するコンストラクタ。

destructor

オブジェクトの拡張に使用されたメモリーを解放するデストラクタ。

objecttype

サーバーによって設定され、拡張を取得するために使用されます。

extensionhandle

サーバーによって設定され、拡張を取得するために使用されます。

16.1.74.3 説明

この関数は、接続や操作などのオブジェクトに対する拡張を登録します。このメカニズムを使用すると、プラグインに、パラメータ・ブロックを使用して実行できない操作などの、操作前プラグインから操作後プラグインに渡される操作とともにプライベート・データを格納できます。

プラグイン初期化関数の一部として、オブジェクトの拡張を登録します。

16.1.74.4 戻り値

この関数は、正常終了した場合は0を戻します。そうでない場合は、-1を戻します。

16.1.75 slapi_register_plugin()

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

16.1.75.1 構文

#include "slapi-plugin.h"
int slapi_register_plugin( const char *plugintype, int enabled,
    const char *initsymbol, slapi_plugin_init_fnptr initfunc,
    const char *name, char **argv, void *group_identity);

16.1.75.2 パラメータ

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

plugintype

「プラグイン登録」で説明されている、プラグイン・タイプを識別する文字列

enabled

登録時にプラグインを有効にするには1、それ以外の場合には0

initsymbol

"my_init_fcn"などの、プラグイン初期化関数initfuncの文字列表現

initfunc

プラグイン初期化関数へのポインタ

name

プラグインの一般名

argv

プラグインに渡される引数

group_identity

通常、この関数をコールするプラグインのSLAPI_PLUGIN_IDENTITYから取得される、プラグイン・グループ識別子

16.1.75.3 説明

この関数は、別のプラグインを登録します。プラグイン初期化関数の一部として、プラグインを登録します。

16.1.75.4 戻り値

この関数は、正常終了した場合は0を戻します。そうでない場合は、-1を戻します。

16.1.75.5 関連項目

slapi_plugin_init_fnptr

16.1.76 slapi_register_role_get_scope()

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

16.1.76.1 構文

#include "slapi-plugin.h"
void slapi_register_role_get_scope(
    roles_get_scope_fn_type get_scope_fn);

16.1.76.2 パラメータ

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

get_scope_fn

ロールの範囲を決定するコールバック

16.1.76.3 説明

この関数は、ロールの範囲を評価するコールバックを登録します。プラグイン初期化関数の一部として、コールバックを登録します。

16.1.77 slapi_register_supported_control()

指定されたコントロールをサーバーに登録します。この関数により、コントロールがオブジェクト識別子(OID)に関連付けられます。サーバーでは、このOIDが指定されたリクエストが受信すると、この情報を使用して、サーバーまたはそのプラグインでコントロールがサポートされているかどうかを判断します。

16.1.77.1 構文

#include "slapi-plugin.h"
void slapi_register_supported_control( char const *controloid,
    unsigned long controlops );

16.1.77.2 パラメータ

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

controloid

登録するコントロールのOID

controlops

コントロールを適用可能な操作

controlops引数には、次のうち1つ以上の値を指定できます。

ID 説明
SLAPI_OPERATION_BIND

指定されたコントロールは、LDAPバインド操作に適用される。

SLAPI_OPERATION_UNBIND

指定されたコントロールは、LDAPアンバインド操作に適用される。

SLAPI_OPERATION_SEARCH

指定されたコントロールは、LDAP検索操作に適用される。

SLAPI_OPERATION_MODIFY

指定されたコントロールは、LDAP変更操作に適用される。

SLAPI_OPERATION_ADD

指定されたコントロールは、LDAP追加操作に適用される。

SLAPI_OPERATION_DELETE

指定されたコントロールは、LDAP削除操作に適用される。

SLAPI_OPERATION_MODDN

指定されたコントロールは、LDAPのDN変更操作に適用される。

SLAPI_OPERATION_MODRDN

指定されたコントロールは、LDAPv3のRDN変更操作に適用される。

SLAPI_OPERATION_COMPARE

指定されたコントロールは、LDAP比較操作に適用される。

SLAPI_OPERATION_ABANDON

指定されたコントロールは、LDAP中止操作に適用される。

SLAPI_OPERATION_EXTENDED

指定されたコントロールは、LDAP v3拡張操作に適用される。

SLAPI_OPERATION_ANY

指定されたコントロールは、すべてのLDAP操作に適用される。

SLAPI_OPERATION_NONE

指定されたコントロールは、いずれのLDAP操作にも適用されない。


値をビットごとにORで結合することによって、値の組合せを指定できます(SLAPI_OPERATION_ADD | SLAPI_OPERATION_DELETEなど)。

16.1.78 slapi_register_supported_saslmechanism()

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

16.1.78.1 構文

#include "slapi-plugin.h"
void slapi_register_supported_saslmechanism( char *mechanism );

16.1.78.2 パラメータ

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

mechanism

SASLバインド時にメカニズムを要求するサーバーとクライアントの両方に対してSASLメカニズムを識別する文字列

16.1.78.3 説明

プラグインでサポートされているSASLメカニズムの名前を登録するには、プラグイン初期化関数でこの関数を使用します。次に、SASLバインドを処理する操作前関数では、クライアントによって指定されたSASLバインド・メカニズム名を確認し、バインドの処理を試行するかどうかを決定できます。

16.1.78.4 関連項目

サンプルの$INSTALL_DIR/plugins/slapd/slapi/examples/testsaslbind.cプラグインは、この関数の使用例を示しています。

16.1.79 slapi_rename_internal_set_pb()

内部RDN変更操作のためのパラメータ・ブロックを準備します。

16.1.79.1 構文

#include "slapi-plugin.h"
int slapi_rename_internal_set_pb(Slapi_PBlock *pb,
    const char *olddn, const char *newrdn,
    const char *newsuperior, int deloldrdn,
    LDAPControl **controls, const char *uniqueid,
    Slapi_ComponentId *plugin_identity, int operation_flags);

16.1.79.2 パラメータ

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

pb

内部RDN変更操作のためのパラメータ・ブロック

olddn

名前を変更するエントリの識別名

newrdn

適用する新しい相対識別名

newsuperior

名前を変更した後の親のDN

deloldrdn

古いRDNを削除するには1、古いRDNを保持するには0

controls

RDN変更操作用に要求するコントロールの配列

uniqueid

DNを使用しない場合、エントリの一意識別子

plugin_identity

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

operation_flags

NULLまたはSLAPI_OP_FLAG_NEVER_CHAINです。

16.1.79.3 戻り値

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

16.1.79.4 説明

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

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

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

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

slapi_modrdn_internal_pb()をコールした後、パラメータ・ブロックを解放します。

16.1.80 slapi_role_check()

entry_to_checkが指すエントリに、role_dnによって示されるロールが含まれるかどうかを確認します。

16.1.80.1 構文

#include "slapi-plugin.h"
 int slapi_role_check(Slapi_Entry *entry_to_check,
    Slapi_DN *role_dn,int *present);

16.1.80.2 パラメータ

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

entry_to_check

ロールの存在を確認する対象エントリ。

role_dn

確認するロールのDN。

present

結果が配置される整数へのポインタ。次の結果になります。

  • 0以外の場合には存在します。

  • 0の場合には存在しません。

16.1.80.3 戻り値

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

  • role_dnentry_to_checkに存在する場合、成功を示す0を戻し、presentはゼロ以外に設定されます。それ以外の場合には0となります。

  • ロールの存在が不明である場合は、ゼロ以外(エラー状況)を戻します。

16.1.81 slapi_role_get_scope()

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

16.1.81.1 構文

#include "slapi-plugin.h"
int slapi_role_get_scope(Slapi_Entry *role_entry,
    Slapi_DN ***scope_dn, int *nb_scope);

16.1.81.2 パラメータ

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

role_entry

ロールを定義するエントリ。

scope_dn

範囲のベースとなるエントリの識別名へのコールバックによって設定されます。

nb_scope

LDAP_SCOPE_BASELDAP_SCOPE_ONELEVELLDAP_SCOPE_SUBTREEなどの値へのコールバックによって設定されます。

16.1.81.3 説明

この関数は、ロールの範囲を評価するコールバックをトリガーします。

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

この関数に渡されたパラメータが、Directory Serverによって解放またはコピーされることはありません。

16.1.82 slapi_sdn_add_rdn()

Slapi_RDN構造体に含まれているRDNを、Slapi_DN構造体に含まれているDNに追加します。

16.1.82.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_add_rdn(Slapi_DN *sdn, const Slapi_RDN *rdn);

16.1.82.2 パラメータ

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

sdn

新しいRDNが追加される値を含むSlapi_DN構造体

rdn

DN値に追加されるRDN値を含むSlapi_RDN構造体

16.1.82.3 戻り値

この関数は、rdnのRDN値をdnのDN値に追加することによって形成される新しいDNを含む、Slapi_DN構造体を戻します。

16.1.82.4 関連項目

slapi_sdn_set_rdn()

16.1.83 slapi_sdn_compare()

2つのDNを比較します。

16.1.83.1 構文

#include "slapi-plugin.h"
 int slapi_sdn_compare( const Slapi_DN *sdn1, const Slapi_DN *sdn2 );

16.1.83.2 パラメータ

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

sdn1

sdn2の値と比較するDN

sdn2

sdn1の値と比較するDN

16.1.83.3 戻り値

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

  • sdn1sdn2と同一である場合には、0

  • sdn1NULLである場合には、-1

  • sdn2NULLであり、かつsdn1NULLでない場合には、1

16.1.83.4 説明

この関数は、sdn1sdn2の2つのDNを比較します。比較では、大/小文字が区別されます。

16.1.84 slapi_sdn_copy()

DNのコピーを作成します。

16.1.84.1 構文

#include "slapi-plugin.h"
 void slapi_sdn_copy(const Slapi_DN *from, Slapi_DN *to);

16.1.84.2 パラメータ

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

from

元のDN

to

fromで指定されたDNのコピーを含む、DNのコピー先

16.1.84.3 説明

この関数は、toが指す構造体にfromのDNをコピーします。

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

toは、この関数をコールする前に割り当てられている必要があります。

16.1.84.5 関連項目

slapi_sdn_dup()

16.1.85 slapi_sdn_done()

Slapi_DN構造体のインスタンスを消去します。

16.1.85.1 構文

#include "slapi-plugin.h"
 void slapi_sdn_done(Slapi_DN *sdn);

16.1.85.2 パラメータ

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

sdn

消去する構造体へのポインタ

16.1.85.3 説明

この関数は、Slapi_DN構造体のコンテンツを消去します。これにより、DNと、存在する場合には正規化されたDNの両方が解放され、これらのポインタはNULLに設定されます。

16.1.85.4 関連項目

slapi_sdn_free()

16.1.86 slapi_sdn_dup()

Slapi_DN構造体を複製します。

16.1.86.1 構文

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

16.1.86.2 パラメータ

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

sdn

複製するSlapi_DN構造体へのポインタ

16.1.86.3 戻り値

この関数は、sdnの複製へのポインタを戻します。

16.1.86.4 関連項目

slapi_sdn_copy()

slapi_sdn_new()

16.1.87 slapi_sdn_free()

Slapi_DN構造体を解放します。

16.1.87.1 構文

#include "slapi-plugin.h"
void slapi_sdn_free(Slapi_DN **sdn);

16.1.87.2 パラメータ

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

sdn

解放するSlapi_DN構造体へのポインタ

16.1.87.3 説明

この関数は、Slapi_DN構造体およびsdnのコンテンツが指すその構造体のコンテンツを解放します。

16.1.87.4 関連項目

slapi_sdn_done()

slapi_sdn_new()

16.1.88 slapi_sdn_get_backend_parent()

特定のバックエンド内にあるエントリの親のDNを取得します。

16.1.88.1 構文

#include "slapi-plugin.h"
void slapi_sdn_get_backend_parent(const Slapi_DN *sdn,
    Slapi_DN *sdn_parent,const Slapi_Backend *backend);

16.1.88.2 パラメータ

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

sdn

親を検索するエントリのDN

sdn_parent

sdnの親DN

backend

sdnの親を検索するバックエンド

16.1.88.3 説明

この関数は、指定されたバックエンド内のエントリの親DNを取得します。sdnが空である場合と、バックエンド自体のサフィックスである場合を除き、返される親DNはsdn_parentに戻されます。該当する場合には、sdn_parentは空となります。

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

この関数をコールする前に、sdn_parentSlapi_DN構造体を割り当てる必要があります。

16.1.88.5 関連項目

slapi_sdn_get_parent()

16.1.89 slapi_sdn_get_dn()

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

16.1.89.1 構文

#include "slapi-plugin.h"
 const char * slapi_sdn_get_dn(const Slapi_DN *sdn);

16.1.89.2 パラメータ

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

sdn

DN値を含むSlapi_DN構造体

16.1.89.3 戻り値

この関数はDN値を戻します。

16.1.89.4 説明

この関数は、Slapi_DN構造体のDN値を取得します。他に値が存在しない場合には、戻り値は正規化されたDN (正規のフォーマット、小文字)になることがあります。

16.1.90 slapi_sdn_get_ndn()

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

16.1.90.1 構文

#include "slapi-plugin.h"
 const char * slapi_sdn_get_ndn(const Slapi_DN *sdn);

16.1.90.2 パラメータ

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

sdn

DN値を含むSlapi_DN構造体

16.1.90.3 戻り値

この関数は正規化されたDN値を戻します。

16.1.90.4 説明

この関数は、Slapi_DN構造体から正規化されたDN (正規のフォーマット、小文字)を取得し、まだ正規化されていない場合には、sdnを正規化します。

16.1.90.5 関連項目

slapi_sdn_get_dn()

16.1.91 slapi_sdn_get_ndn_len()

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

16.1.91.1 構文

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

16.1.91.2 パラメータ

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

sdn

DN値を含むSlapi_DN構造体

16.1.91.3 戻り値

この関数は、正規化されたDNの長さを戻します。

16.1.91.4 説明

この関数は正規化されたDNの長さを含み、sdnがまだ正規化されていない場合には、正規化します。

16.1.92 slapi_sdn_get_parent()

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

16.1.92.1 構文

#include "slapi-plugin.h"
 void slapi_sdn_get_parent(const Slapi_DN *sdn,Slapi_DN *sdn_parent);

16.1.92.2 パラメータ

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

sdn

親を検索するDNを含む、初期化されたSlapi_DN構造体へのポインタ

sdn_parent

親DNが戻されるSlapi_DN構造体へのポインタ

16.1.92.3 説明

この関数は、sdnが指す構造体に保持されているDNの親DNを含む、Slapi_DN構造体を戻します。

16.1.92.4 関連項目

slapi_sdn_get_backend_parent()

16.1.93 slapi_sdn_get_rdn()

DNからRDNを取得します。

16.1.93.1 構文

#include "slapi-plugin.h"
 void slapi_sdn_get_rdn(const Slapi_DN *sdn, Slapi_RDN *rdn);

16.1.93.2 パラメータ

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

sdn

DNを含むSlapi_DN構造体へのポインタ

rdn

RDNが戻されるSlapi_RDN構造体へのポインタ

16.1.93.3 説明

この関数は、sdnが指すSlapi_DN構造体に格納されたDNを使用して、rdnが指すSlapi_RDN構造体内に戻されるRDNを取得します。

16.1.93.4 関連項目

slapi_sdn_add_rdn()

slapi_sdn_get_dn()

16.1.94 slapi_sdn_get_suffix()

ターゲットを含むサフィックスのDNへのポインタを戻します。

16.1.94.1 構文

#include "slapi-plugin.h"
Slapi_DN* slapi_sdn_get_suffix(const Slapi_DN *target_sdn);

16.1.94.2 パラメータ

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

target_sdn

必要なサフィックスを含むターゲット・エントリのDN

16.1.94.3 戻り値

この関数は、target_sdnが使用されたエントリのサフィックスのベースDNを含むSlapi_DN構造体へのポインタを戻し、該当するサフィックスを使用できない場合にはNULLを戻します。

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

slapi_sdn_free()を使用して戻された構造体を解放します。

16.1.95 slapi_sdn_isempty()

Slapi_DN構造体に格納されたDN値があるかどうかを確認します。

16.1.95.1 構文

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

16.1.95.2 パラメータ

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

sdn

確認するSlapi_DN構造体へのポインタ

16.1.95.3 戻り値

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

  • Slapi_DN構造体にDN値(正規化されているかどうかに関係なく)がない場合には、1

  • sdnが空の場合には、0

16.1.95.4 説明

この関数は、Slapi_DN構造体に正規化された値または正規化されていない値が含まれているかどうかを確認します。

16.1.95.5 関連項目

slapi_sdn_done()

16.1.96 slapi_sdn_isgrandparent()

DNが、指定されたDNの親の親であるかどうかを確認します。

16.1.96.1 構文

#include "slapi-plugin.h"
 int slapi_sdn_isgrandparent( const Slapi_DN *parent,
    const Slapi_DN *child );

16.1.96.2 パラメータ

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

parent

childのDNの親DNの親とみなされるDNを含むSlapi_DN構造体へのポインタ

child

parentが指す構造体内のDNの想定される孫のDNを含むSlapi_DN構造体へのポインタ

16.1.96.3 戻り値

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

  • parentのDNがchildのDNの親の親である場合には、1

  • parentのDNがchildのDNの親の親のDNと一致しない場合には、0

16.1.97 slapi_sdn_isparent()

DNが、指定されたDNの親であるかどうかを確認します。

16.1.97.1 構文

#include "slapi-plugin.h"
 int slapi_sdn_isparent(const Slapi_DN *parent,
    const Slapi_DN *child);

16.1.97.2 パラメータ

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

parent

childのDNの親とみなされるDNを含むSlapi_DN構造体へのポインタ

child

parentが指す構造体内のDNの想定される子のDNを含むSlapi_DN構造体へのポインタ

16.1.97.3 戻り値

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

  • parentのDNがchildのDNの親である場合には、1

  • parentのDNがchildのDNの親のDNと一致しない場合には、0

16.1.98 slapi_sdn_issuffix()

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

16.1.98.1 構文

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

16.1.98.2 パラメータ

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

sdn

確認するSlapi_DN構造体へのポインタ

suffixsdn

サフィックスのSlapi_DN構造体へのポインタ

16.1.98.3 戻り値

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

  • suffixsdnのDNがsdnのサフィックスである場合には、1

  • suffixsdnのDNがsdnのサフィックスでない場合には、0

16.1.98.4 関連項目

slapi_sdn_isparent()

16.1.99 slapi_sdn_new()

新しいSlapi_DN構造体を割り当てて、NULLに初期化します。

16.1.99.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_new();

16.1.99.2 パラメータ

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

16.1.99.3 戻り値

この関数は、新しく割り振られた空のままのSlapi_DN構造体へのポインタを戻します。

16.1.99.4 説明

この関数は、必要なメモリーを割り当てて、DN値と正規化されたDN値の両方をNULLに初期化することによって、新しいSlapi_DN構造体を作成します。

16.1.100 slapi_sdn_new_dn_byref()

新しいSlapi_DN構造体を作成して、DN値を設定します。

16.1.100.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_new_dn_byref(const char *dn);

16.1.100.2 パラメータ

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

dn

新しいSlapi_DN構造体で設定されるDN値

16.1.100.3 戻り値

この関数は、dnのコンテンツに設定されたDN値を含む、新しいSlapi_DN構造体へのポインタを戻します。

16.1.100.4 説明

この関数は、新しいSlapi_DN構造体を作成し、dnの値を使用してそのDNを初期化します。新しい構造体のDNは、dnが指す文字列と同じものを指します(DN値は参照によってパラメータに渡されます)。ただし、FLAG_DNフラグは設定されず、カウンタは増分されません。

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

メモリーは、関数自体によって割り当てられます。

16.1.101 slapi_sdn_new_dn_byval()

新しいSlapi_DN構造体を作成して、DN値を設定します。

16.1.101.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_new_dn_byval(const char *dn);

16.1.101.2 パラメータ

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

dn

新しいSlapi_DN構造体で設定されるDN値

16.1.101.3 戻り値

この関数は、dnのコンテンツに設定されたDN値を含む、新しいSlapi_DN構造体へのポインタを戻します。

16.1.101.4 説明

この関数は、新しいSlapi_DN構造体を作成し、dnの値を使用してそのDNを初期化します。新しい構造体のDNは、dnが指す文字列のコピーを指します(DN値は値でパラメータに渡されます)。FLAG_DNフラグが設定され、内部カウンタが増分されます。

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

メモリーは、関数自体によって割り当てられます。

16.1.102 slapi_sdn_new_dn_passin()

新しいSlapi_DN構造体を作成して、DN値を設定します。

16.1.102.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_new_dn_passin(const char *dn);

16.1.102.2 パラメータ

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

dn

新しいSlapi_DN構造体で設定されるDN値

16.1.102.3 戻り値

この関数は、dnのコンテンツに設定されたDN値を含む、新しいSlapi_DN構造体へのポインタを戻します。

16.1.102.4 説明

この関数は、新しいSlapi_DN構造体を作成し、dnの値を使用してそのDNを初期化します。新しい構造体のDNは、dnが指す文字列を指します。FLAG_DNフラグが設定され、内部カウンタが増分されます。

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

メモリーは、関数自体によって割り当てられます。

16.1.103 slapi_sdn_new_ndn_byref()

新しいSlapi_DN構造体を作成して、正規化されたDN値を設定します。

16.1.103.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_new_ndn_byref(const char *ndn);

16.1.103.2 パラメータ

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

ndn

新しいSlapi_DN構造体で設定される正規化されたDN値

16.1.103.3 戻り値

この関数は、ndnのコンテンツに設定された正規化されたDN値を含む、新しいSlapi_DN構造体へのポインタを戻します。

16.1.103.4 説明

この関数は、新しいSlapi_DN構造体を作成し、ndnの値を使用してその正規化されたDNを初期化します。新しい構造体の正規化されたDNは、ndnが指す文字列と同じものを指します(正規化されたDN値は参照によってパラメータに渡されます)。ただし、FLAG_NDNフラグは設定されず、カウンタは増分されません。

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

メモリーは、関数自体によって割り当てられます。

16.1.103.6 関連項目

slapi_sdn_new_ndn_byval()

16.1.104 slapi_sdn_new_ndn_byval()

新しいSlapi_DN構造体を作成して、正規化されたDN値を設定します。

16.1.104.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_new_ndn_byval(const char *ndn);

16.1.104.2 パラメータ

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

ndn

新しいSlapi_DN構造体で設定される正規化されたDN値

16.1.104.3 戻り値

この関数は、ndnのコンテンツに設定された正規化されたDN値を含む、新しいSlapi_DN構造体へのポインタを戻します。

16.1.104.4 説明

この関数は、新しいSlapi_DN構造体を作成し、ndnの値を使用してその正規化されたDNを初期化します。新しい構造体の正規化されたDNは、ndnが指す文字列のコピーを指します(正規化されたDN値は値でパラメータに渡されます)。FLAG_DNDフラグが設定され、内部カウンタが増分されます。

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

メモリーは、関数自体によって割り当てられます。

16.1.104.6 関連項目

slapi_sdn_new_ndn_byref()

16.1.105 slapi_sdn_scope_test()

エントリ(指定されたDN)が、特定のベースDNの範囲内にあるかどうかを確認します。

16.1.105.1 構文

#include "slapi-plugin.h"
 int slapi_sdn_scope_test( const Slapi_DN *dn, const Slapi_DN *base,
    int scope );

16.1.105.2 パラメータ

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

dn

範囲テストのエントリ対象のDN。

base

dnをテストする対象となるベースDN。

scope

テストする範囲。このパラメータには、次のいずれかのレベルを使用できます。

  • LDAP_SCOPE_BASE - エントリDNはベースDNと同じである必要があります。

  • LDAP_SCOPE_ONELEVEL - ベースDNはエントリDNの親である必要があります。

  • LDAP_SCOPE_SUBTREE - ベースDNは、少なくともエントリDNのサフィックスである必要があります。

16.1.105.3 戻り値

この関数は、dnbaseおよびscopeによって指定されたスコーピング基準と一致する場合には、ゼロ以外を戻します。

16.1.105.4 説明

この関数では単純なテストを実行し、dnパラメータで渡されるDNが、scopeおよびbaseの各パラメータに渡される値に応じて、実際にベースDNの範囲内にあるかどうかを確認します。

16.1.106 slapi_sdn_set_dn_byref()

Slapi_DN構造体にDN値を設定します。

16.1.106.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_set_dn_byref(Slapi_DN *sdn, const char *dn);

16.1.106.2 パラメータ

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

sdn

ターゲットのSlapi_DN構造体

dn

sdnに設定されるDN値

16.1.106.3 戻り値

この関数は、新しいDN値を含むSlapi_DN構造体へのポインタを戻します。

16.1.106.4 説明

この関数は、Slapi_DN構造体にDN値を設定します。新しい構造体のDNは、dnが指す文字列と同じものを指します(DN値は値でパラメータに渡されます)。ただし、FLAG_DNフラグは設定されず、内部カウンタは増分されません。

16.1.107 slapi_sdn_set_dn_byval()

Slapi_DN構造体にDN値を設定します。

16.1.107.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_set_dn_byval(Slapi_DN *sdn, const char *dn);

16.1.107.2 パラメータ

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

sdn

ターゲットのSlapi_DN構造体

dn

sdnに設定されるDN値

16.1.107.3 戻り値

この関数は、新しいDN値を含むSlapi_DN構造体へのポインタを戻します。

16.1.107.4 説明

この関数は、Slapi_DN構造体にDN値を設定します。新しい構造体のDNは、dnが指す文字列のコピーを指します(DN値は値でパラメータに渡されます)。FLAG_DNフラグが設定され、内部カウンタが増分されます。

16.1.108 slapi_sdn_set_dn_passin()

Slapi_DN構造体にDN値を設定します。

16.1.108.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_set_dn_passin(Slapi_DN *sdn, const char *dn);

16.1.108.2 パラメータ

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

sdn

ターゲットのSlapi_DN構造体

dn

sdnに設定されるDN値

16.1.108.3 戻り値

この関数は、新しいDN値を含むSlapi_DN構造体へのポインタを戻します。

16.1.108.4 説明

この関数は、Slapi_DN構造体にDN値を設定します。新しい構造体のDNは、dnが指す文字列と同じものを指します。FLAG_DNフラグが設定され、内部カウンタが増分されます。

16.1.109 slapi_sdn_set_ndn_byref()

Slapi_DN構造体に正規化されたDNを設定します。

16.1.109.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_set_ndn_byref(Slapi_DN *sdn, const char *ndn);

16.1.109.2 パラメータ

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

sdn

ターゲットのSlapi_DN構造体

dn

sdnに設定される正規化されたDN値

16.1.109.3 戻り値

この関数は、新しい正規化されたDN値を含むSlapi_DN構造体へのポインタを戻します。

16.1.109.4 説明

この関数は、Slapi_DN構造体に正規化されたDN値を設定します。新しい構造体の正規化されたDNは、ndnが指す文字列と同じものを指します(正規化されたDN値は参照によってパラメータに渡されます)。ただし、FLAG_DNフラグは設定されず、内部カウンタは増分されません。

16.1.110 slapi_sdn_set_ndn_byval()

Slapi_DN構造体に正規化されたDN値を設定します。

16.1.110.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_set_ndn_byval(Slapi_DN *sdn, const char *ndn);

16.1.110.2 パラメータ

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

sdn

ターゲットのSlapi_DN構造体

dn

sdnに設定される正規化されたDN値

16.1.110.3 戻り値

この関数は、新しい正規化されたDN値を含むSlapi_DN構造体へのポインタを戻します。

16.1.110.4 説明

この関数は、Slapi_DN構造体に正規化されたDN値を設定します。新しい構造体の正規化されたDNは、ndnが指す文字列のコピーを指します(正規化されたDN値は値でパラメータに渡されます)。FLAG_DNフラグが設定され、内部カウンタが増分されます。

16.1.111 slapi_sdn_set_parent()

指定されたエントリに新しい親を設定します。

16.1.111.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_set_parent(Slapi_DN *sdn,
    const Slapi_DN *parentdn);

16.1.111.2 パラメータ

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

sdn

エントリのDNを含むSlapi_DN構造体

parentdn

新しい親DN

16.1.111.3 戻り値

この関数は、新しい親DNが設定された後、エントリのDNを含むSlapi_DN構造体へのポインタを戻します。

16.1.111.4 説明

この関数は、エントリに新しい親を設定します。このことは、エントリの元のDNのRDNを保持し、その新しい親のDN(parentdn)を追加することによって行われます。

16.1.112 slapi_sdn_set_rdn()

指定されたエントリに新しいRDNを設定します。

16.1.112.1 構文

#include "slapi-plugin.h"
 Slapi_DN *slapi_sdn_set_rdn(Slapi_DN *sdn, const Slapi_RDN *rdn);

16.1.112.2 パラメータ

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

sdn

エントリのDNを含むSlapi_DN構造体

rdn

新しいRDN

16.1.112.3 戻り値

この関数は、新しいRDNが設定された後、エントリのDNを保持するSlapi_DN構造体へのポインタを戻します。

16.1.112.4 説明

この関数は、エントリに新しいRDNを設定します。このことは、エントリの元のDNの親のDNを取得し、その後それをRDN(rdnの値)に追加することによって実行されます。

16.1.112.5 関連項目

slapi_sdn_get_rdn()

16.1.113 slapi_search_internal_callback_pb()

パラメータ・ブロックに基づいてLDAP検索操作を実行し、ディレクトリを検索します。slapi_search_internal_pb()とは異なり、この関数を使用すると、検索操作で一致するエントリまたは参照を含むエントリが検出された場合に起動されるコールバック関数を指定できます。

16.1.113.1 構文

#include "slapi-plugin.h"
int slapi_search_internal_callback_pb(Slapi_PBlock *pb,
    void *callback_data, plugin_result_callback prc,
    plugin_search_entry_callback psec,
    plugin_referral_entry_callback prec);

16.1.113.2 パラメータ

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

pb

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

callback_data

コールバック関数に渡す必要がある任意のプラグインまたは操作固有データへのポインタ。

prc

結果コードを送信するために、サーバーによってコールされるコールバック関数。この関数には、plugin_result_callbackによって指定されたプロトタイプが必要です。

psec

一致するエントリがディレクトリで検出された場合に、サーバーによってコールされるコールバック関数。この関数には、plugin_search_entry_callbackによって指定されたプロトタイプが必要です。

prec

LDAP v3参照を含むエントリが検出された場合に、サーバーによってコールされるコールバック関数。この関数には、plugin_referral_entry_callbackによって指定されたプロトタイプが必要です。

16.1.113.3 戻り値

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

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

16.1.113.4 説明

slapi_search_internal_pb()のように、この関数を使用すると、プラグイン関数からディレクトリを検索できます。

クライアントによって要求された検索操作とは異なり、結果コード、検索エントリまたは参照がslapi_search_internal_callback_pb()によってクライアントに送信されることはありません。ただし、次のイベントが発生した場合に起動される、独自のコールバック関数を作成できます。

  • 検索操作によって結果コードが正常にクライアントに送信された場合に起動される、コールバック関数を作成できます。この関数には、plugin_result_callbackによって指定されたプロトタイプが必要です。この関数は、slapi_search_internal_callback_pb()prc引数で指定します。

  • 検索操作によって検索エントリが正常にクライアントに送信された場合に起動される、コールバック関数を作成できます。この関数には、plugin_search_entry_callbackによって指定されたプロトタイプが必要です。この関数は、slapi_search_internal_callback_pb()psec引数で指定します。

  • 検索操作によってLDAP v3検索結果参照が正常に送信された場合に起動される、コールバック関数を作成できます。この関数には、plugin_referral_entry_callbackによって指定されたプロトタイプが必要です。この関数は、slapi_search_internal_callback_pb()prec引数で指定します。

    任意プラグインまたは操作固有データをこれらのコールバック関数に渡すこともできます。slapi_search_internal_callback_pb()callback_data引数として渡すデータを指定します。

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

検索エントリのコールバック関数に渡されるエントリを解放する必要はありません。コールバック関数から復帰した後、エントリにアクセスする必要がある場合は、slapi_entry_dup()をコールしてコピーを作成します。

参照エントリのコールバック関数に渡される参照URLを解放する必要はありません。コールバック関数から復帰した後、参照文字列にアクセスする必要がある場合は、slapi_ch_strdup()をコールしてコピーを作成します。

slapi_search_internal_callback_pb()をコールした後、slapi_free_search_results_internal()をコールする必要はありません。

16.1.114 slapi_search_internal_get_entry()

内部検索操作を実行して、エントリを1つ読み取ります(つまり、基本オブジェクト検索を実行します)。

16.1.114.1 構文

#include "slapi-plugin.h"
 int slapi_search_internal_get_entry( Slapi_DN const *dn, char ** attrlist,
    Slapi_Entry **ret_entry, void *caller_identity);

16.1.114.2 パラメータ

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

dn

読み取るエントリのDN。

attrlist

フィルタと一致するエントリから戻される属性タイプのNULL終了配列。NULLを指定すると、すべての属性が戻されます。

ret_entry

検出された場合にエントリを受信するSlapi_Entryポインタのアドレス。

caller_identity

プラグインまたはコンポーネント識別子。この値は、プラグイン初期化関数に渡されるパラメータ・ブロックのSLAPI_PLUGIN_IDENTITYフィールドから取得できます。

16.1.114.3 戻り値

この関数は、検索操作のLDAP結果コードを戻します。

16.1.114.4 説明

この関数は内部検索操作を実行して、エントリを1つ読み取ります(つまり、基本オブジェクト検索を実行します)。dnで指定されたエントリが検出された場合、ret_entryポインタは、attrlistパラメータで指定された属性値を含むエントリのコピーを指すように設定されます。

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

戻されたエントリ(*ret_entry)は、slapi_entry_free()をコールして解放する必要があります。

16.1.115 slapi_search_internal_pb()

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

16.1.115.1 構文

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

16.1.115.2 パラメータ

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

pb

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

16.1.115.3 戻り値

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

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

16.1.115.4 説明

この関数は、パラメータ・ブロックに基づいて内部検索を実行します。このパラメータ・ブロックは、slapi_search_internal_set_pb()関数をコールして初期化する必要があります。

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

slapi_search_internal_pb()のコールによって割り当てられたエントリや他のアイテムを解放するには、slapi_free_search_results_internal()をコールする必要があります。

16.1.116 slapi_search_internal_set_pb()

内部検索のためのパラメータ・ブロックを設定します。

16.1.116.1 構文

#include slapi-plugin.h
int slapi_search_internal_set_pb(Slapi_PBlock *pb,
    const char *base, int scope, const char *filter,
    char **attrs, int attrsonly,LDAPControl **controls,
    const char *uniqueid,Slapi_ComponentId *plugin_identity,
    int operation_flags);

16.1.116.2 パラメータ

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

pb

パラメータ・ブロックです。

base

検索のベース。

scope

LDAP_SCOPE_SUBTREELDAP_SCOPE_ONELEVELまたはLDAP_SCOPE_BASE

filter

検索フィルタ。

attrs

リクエスト属性リスト。attrsの値に応じて戻されるエントリ属性です。

NULL: 属性タイプのリストを表す文字列の、すべての属性Null終了配列。エントリ属性のサブセット(具体的には、エントリに存在する場合にはattrsに指定された属性、および、rdnで使用される属性のような他のいくつかの属性)。

attrsonly

1を指定すると、属性タイプのみが取得されます。0を指定すると、属性タイプと属性値が取得されます。

controls

アタッチするLDAPコントロール。

uniqueid

一意のIDはNULLに設定する必要があります。

plugin_identity

プラグイン初期化中に、SLAPI_PLUGIN_IDENTITYから取得されるプラグイン識別子。

operation_flags

このリリースで公開されているフラグは、SLAPI_OP_FLAG_NEVER_CHAINのみです。このフラグが設定されていると、エントリが連鎖したバックエンドである場合、検索は実行されません。

16.1.116.3 戻り値

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

16.1.116.4 説明

この関数を使用して、内部検索を実行するパラメータ・ブロックを設定します。内部検索操作関数slapi_search_internal_pb()を使用するには、この関数が必要です。

通常、slapi_pblock_new()を使用してSlapi_PBlock構造体を作成し、このパラメータ・ブロックをslapi_search_internal_pb()に渡してから、実際に検索を実行するために同じパラメータ・ブロックを渡します。

戻されるエントリは、最初のコールバックに指定されたエントリか、またはslapi_pblock_get(pb, SLAPI_PLUGIN_INTOP_SEARCH_ENTRIES, &entries) ()によって取得された配列で指定されたエントリです。

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

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

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

slapi_search_internal_pb()をコールした後、パラメータ・ブロックを解放します。

16.1.117 slapi_send_ldap_referral()

エントリのLDAP v3参照(エントリのref属性で見つかります)を処理します。LDAP v3クライアントの場合、この関数はLDAP参照をクライアントに戻します。LDAP v2クライアントの場合は、この関数によって参照がberval構造体の配列にコピーされ、後で、この構造をslapi_send_ldap_result()関数に渡すことができます。

16.1.117.1 構文

#include "slapi-plugin.h"
int slapi_send_ldap_referral( Slapi_PBlock *pb, Slapi_Entry *e,
    struct berval **refs, struct berval ***urls );

16.1.117.2 パラメータ

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

pb

パラメータ・ブロックです。

e

処理中のエントリを表すSlapi_Entry構造体へのポインタ

refs

エントリで検出されるLDAP v3参照(検索結果の参照)を含むberval構造体のNULL終了配列へのポインタ

urls

LDAP v2クライアントのLDAP参照の収集に使用されるberval構造体の配列へのポインタ

16.1.117.3 戻り値

この関数は、成功した場合は0を戻し、エラーが発生した場合には-1を戻します。

16.1.117.4 説明

この関数をコールすると、refs引数で指定されたLDAP参照が処理されます。参照は、クライアントでサポートされるLDAPプロトコルのバージョンに応じて、異なる方法で処理されます。

  • LDAP v3プロトコルでは、他のLDAPサーバーへの参照(検索結果参照)を検索結果としてクライアントに送信できます。(たとえば、サーバーでは、検索によって検出されたエントリと参照の混在を検索結果として他のLDAPサーバーに送信できます。)

    LDAP v3クライアントについてslapi_send_ldap_referral()関数をコールすると、refs引数で指定された参照が、検索結果参照としてクライアントに戻されます。(この場合、urls引数は使用されません。)

  • LDAP v2プロトコルでは、クライアントを参照するLDAP結果コードLDAP_PARTIAL_RESULTSを他のLDAPサーバーに送信できます。

    LDAP v2クライアントについてslapi_send_ldap_referral()関数をコールすると、urls引数のrefsで指定された参照が収集されます。データは、LDAP v2クライアントには送信されません。

    LDAP v2クライアントへの参照を取得するには、urls引数を(LDAP_PARTIAL_RESULTS結果コードとともに) slapi_send_ldap_result()関数に渡す必要があります。slapi_send_ldap_result()によって、urls引数で指定された参照が連結され、結果として得られる文字列が、エラー・メッセージの一部としてクライアントに送信されます。

    参照を送信するために独自の関数を定義する場合は、タイプ定義send_ldap_search_entry_fn_ptr_tに準拠する関数を作成し、その関数の名前に合わせて、パラメータ・ブロックのSLAPI_PLUGIN_DB_REFERRAL_FNパラメータを設定します。

16.1.118 slapi_send_ldap_result()

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

16.1.118.1 構文

#include "slapi-plugin.h"
void slapi_send_ldap_result( Slapi_PBlock *pb, int err,
    char *matched, char *text, int nentries, struct berval **urls );

16.1.118.2 パラメータ

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

pb

パラメータ・ブロックです。

err

クライアントに戻すLDAP結果コード(LDAP_SUCCESSなど)。

matched

LDAP_NO_SUCH_OBJECT結果コードを返信するときに、この引数を使用して、一致する可能性があるターゲットDNの部分を指定する。(他の状況ではNULLを渡す。)

text

クライアントに返信するエラー・メッセージ。(エラー・メッセージを返信しない場合はNULLを渡す。)

nentries

LDAP検索操作の結果コードを返信するときに、この引数を使用して、検出された一致エントリの数を指定する。

urls

LDAP_PARTIAL_RESULTS結果コードをLDAP v2クライアントに返信するとき、またはLDAP_REFERRAL結果コードをLDAP v3クライアントに返信するときに、この引数を使用して、参照URLを含むberval構造体の配列を指定する。(他の状況ではNULLを渡す。)

16.1.118.3 説明

slapi_send_ldap_result()をコールして、LDAP結果コード(LDAP_SUCCESSなど)をクライアントに戻します。

次の引数は、特定の状況でのみ使用できます。

  • matched

    LDAP_NO_SUCH_OBJECT結果コードをクライアントに戻す場合、matchedを使用して、データベースで検索できるターゲットDNの数を指定します。たとえば、クライアントによって、次のDNの検索が試行されるとします。

    cn=Babs Jensen, ou=Product Division, o=Example, c=US
    

    このとき、データベースにc=USおよびo=Example, c=USのエントリが含まれるものの、ou=Product Division, o=Example, c=USのエントリは含まれない場合、matchedパラメータを次のように設定する必要があります。

    o=Example, c=US
    
  • urls

    LDAP_PARTIAL_RESULTS結果コードをLDAP v2クライアントに戻すか、またはLDAP_REFERRAL結果コードをLDAP v3クライアントに戻す場合、urlsを使用して参照URLを指定します。

    LDAP v3参照の場合は、slapi_send_ldap_result()をコールして参照をLDAP v3クライアントに送信し、LDAP v2クライアントのために、これらの参照を収集できます。収集された参照の配列をslapi_send_ldap_result()urls引数に渡すことができます。次に例を示します。

    struct berval **urls;
    ...
    slapi_send_ldap_referral(ld, e, &refs, &urls);
    slapi_send_ldap_result(ld,LDAP_PARTIAL_RESULTS,NULL,NULL,0,urls);
    

    結果コードを送信するために独自の関数を定義する場合は、タイプ定義send_ldap_search_entry_fn_ptr_tに準拠する関数を作成し、その関数の名前に合わせて、パラメータ・ブロックのSLAPI_PLUGIN_DB_RESULT_FNパラメータを設定します。

16.1.119 slapi_send_ldap_search_entry()

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

16.1.119.1 構文

#include "slapi-plugin.h"
int slapi_send_ldap_search_entry( Slapi_PBlock *pb, Slapi_Entry *e,
    LDAPControl **ectrls, char **attrs, int attrsonly );

16.1.119.2 パラメータ

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

pb

パラメータ・ブロックです。

e

クライアントに戻すエントリを表すSlapi_Entry構造体へのポインタ。

ectrls

検索リクエストに関連付けられるコントロールを表すLDAPControl構造体の配列へのポインタ。

attrs

LDAP検索リクエストに指定された属性タイプ。

attrsonly

属性値を結果とともに戻す必要があるかどうかを指定します。

  • 0の場合、値が含まれます。

  • 1の場合、値は含まれません。

16.1.119.3 戻り値

この関数は、成功した場合には0を戻し、エントリが送信されない場合(アクセス制御によって送信が許可されない場合など)には1を戻し、エラーが発生した場合には-1を戻します。

16.1.119.4 説明

slapi_send_ldap_search_entry()をコールして、検索によって検出されたエントリをクライアントに戻します。

attrsは、エントリから送信する属性タイプの配列です。この値は、パラメータ・ブロックのSLAPI_SEARCH_ATTRSパラメータと同じになります。

attrsonlyは、属性タイプのみを送信するか、または属性タイプとその値を送信するかを指定します。

  • 属性タイプと値の両方をクライアントに送信する場合には、このパラメータに0を渡します。

  • 属性タイプのみ(属性値は含まない)をクライアントに送信する場合には、このパラメータに1を渡します。

    この値は、パラメータ・ブロックのSLAPI_SEARCH_ATTRSONLYパラメータと同じになります。

    エントリを送信するために独自の関数を定義する場合は、タイプ定義send_ldap_search_entry_fn_ptr_tに準拠する関数を作成し、その関数名に合わせて、パラメータ・ブロックのSLAPI_PLUGIN_DB_ENTRY_FNパラメータを設定します。

16.1.120 slapi_set_object_extension()

オブジェクトの拡張を変更します。

16.1.120.1 構文

#include "slapi-plugin.h"
void slapi_set_object_extension(int objecttype, void *object,
    int extensionhandle, void *extension);

16.1.120.2 パラメータ

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

objecttype

サーバーによって設定され、拡張を取得するために使用されます。

object

拡張されたオブジェクト

extensionhandle

サーバーによって設定され、拡張を取得するために使用されます。

extension

オブジェクトにアタッチする新しい拡張

16.1.120.3 説明

この関数は、オブジェクトについての拡張を変更します。

16.1.120.4 関連項目

slapi_register_object_extension()

16.1.121 slapi_str2entry()

ディレクトリ・エントリ(文字列値)のLDIF表現をSlapi_Entryタイプのエントリに変換します。

16.1.121.1 構文

#include "slapi-plugin.h"
Slapi_Entry *slapi_str2entry( char *s, int flags );

16.1.121.2 パラメータ

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

s

Slapi_Entryに変換するエントリの説明

flags

エントリの生成方法を指定する1つ以上のフラグ

flags引数の値は、次のいずれかの値にすることができます。

SLAPI_STR2ENTRY_REMOVEDUPVALS

エントリの属性における重複値を削除します。

SLAPI_STR2ENTRY_ADDRDNVALS

相対識別名(RDN)コンポーネント(uid=bjensenなど)をエントリの属性として追加します。

16.1.121.3 戻り値

エントリを表すSlapi_Entry構造体へのポインタを戻し、文字列を変換できない場合(文字列にDNが指定されていない場合など)にはNULLを戻します。

16.1.121.4 説明

ディレクトリ・エントリは、LDIFフォーマットの文字列によって表現できます。

slapi_str2entry()関数をコールすると、このフォーマットの文字列表現がSlapi_Entry構造体に変換され、これを他のAPI関数に渡すことができます。


注意:

この関数は、文字列引数sを変更します。この文字列値を再度使用する必要がある場合は、slapi_str2entry()をコールする前に、この文字列のコピーを作成します。


変換プロセス中にエラーが発生した場合、この関数はエントリのかわりにNULLを戻します。

エントリに対する作業が完了したら、slapi_entry_free()関数をコールする必要があります。

エントリを文字列表現に変換するには、slapi_entry2str()関数をコールします。

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

エントリの解放にfree()またはslapi_ch_free()を使用しないでください。かわりに、常にslapi_entry_free()を使用します。

16.1.121.6 関連項目

slapi_entry2str()

slapi_entry_free()

16.1.122 slapi_str2filter()

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

16.1.122.1 構文

#include "slapi-plugin.h"
Slapi_Filter *slapi_str2filter( char *str );

16.1.122.2 パラメータ

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

str

検索フィルタの文字列表現

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

この関数に静的文字列を渡さないでください。かわりに、slapi_ch_strdup()を使用して複製を作成します。このフィルタに対する作業が完了したら、slapi_filter_free()をコールしてSlapi_Filter構造体を解放する必要があります。

16.1.122.4 戻り値

検索フィルタを表すSlapi_Filter構造体へのポインタを戻し、文字列を変換できない場合(空の文字列が指定されたり、フィルタ構文が正しくない場合など)にはNULLを戻します。

16.1.123 slapi_unlock_mutex()

指定されたmutexをロック解除します。

16.1.123.1 構文

#include "slapi-plugin.h"
int slapi_unlock_mutex( Slapi_Mutex *mutex );

16.1.123.2 パラメータ

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

mutex

ロックを解除するmutexを表すSlapi_Mutex構造体へのポインタ

16.1.123.3 戻り値

次のいずれかの値です。

  • mutexが正常にロック解除された場合には、ゼロ以外の値

  • mutexがNULLであるか、またはコール側スレッドによってロックされていない場合には、0

16.1.123.4 説明

この関数は、Slapi_Mutex構造体によって指定されたmutexをロック解除します。

16.1.124 slapi_UTF-8CASECMP()

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

16.1.124.1 構文

#include "slapi-plugin.h"
 int slapi_UTF-8CASECMP(char *s0, char *s1);

16.1.124.2 パラメータ

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

s0

NULLで終了するUTF-8文字列

s1

NULLで終了するUTF-8文字列

16.1.124.3 戻り値

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

  • s0s1の後の場合には、正の数値

  • 大/小文字を区別せずに2つの文字列が同一である場合には、0

  • s1s0の後の場合には、負の数値

16.1.124.4 説明

この関数には、次のルールがあります。

  • 両方のUTF-8文字列がNULLまたは長さが0である場合、0を戻します。

  • いずれかの文字列がNULLまたは長さが0である場合、NULLまたは長さが0の文字列の方が小さくなります。

  • いずれかまたは両方の文字列がUTF-8でない場合、システムによって提供されるstrcasecmpが使用されます。

  • 2つのうちいずれかの文字列に8ビットの文字が含まれない場合、strcasecmpが使用されます。

  • 文字列は、小文字のUTF-8に変換された後に比較されます。

  • 各文字は最初から比較されます。

    評価は次の順序で行われます。

  • 一方の文字が他方の文字より短い場合、2つの長さの差異を戻します。

  • 対応する文字の長さが同じである場合、文字の各バイトが比較されます。

  • 2つのバイト間に差異がある場合、その差異を戻します。

  • 一方の文字列が他方の文字列より短い場合、その差異を戻します。

16.1.125 slapi_UTF-8NCASECMP()

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

16.1.125.1 構文

#include "slapi-plugin.h"
 int slapi_UTF-8NCASECMP(char *s0, char *s1, int n);

16.1.125.2 パラメータ

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

s0

NULLで終了するUTF-8文字列

s1

NULLで終了するUTF-8文字列

n

比較するs0s1のUTF-8の文字数(バイトではありません)

16.1.125.3 戻り値

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

  • s0s1の後の場合には、正の数値

  • 大/小文字を区別せずに2つの文字列が同一である場合には、0

  • s1s0の後の場合には、負の数値

16.1.125.4 説明

この関数には、次のルールがあります。

  • 両方のUTF-8文字列がNULLまたは長さが0である場合、0を戻します。

  • いずれかの文字列がNULLまたは長さが0である場合、NULLまたは長さが0の文字列の方が小さくなります。

  • いずれかまたは両方の文字列がUTF-8でない場合、システムによって提供されるstrcasecmpが使用されます。

  • 2つのうちいずれかの文字列に8ビットの文字が含まれない場合、strcasecmpが使用されます。

  • 文字列は、小文字のUTF-8に変換された後に比較されます。

  • 各文字は最初から比較されます。

    評価は次の順序で行われます。

  • 一方の文字が他方の文字より短い場合、2つの長さの差異を戻します。

  • 対応する文字の長さが同じである場合、文字の各バイトが比較されます。

  • 2つのバイト間に差異がある場合、その差異を戻します。

  • 一方の文字列が他方の文字列より短い場合、その差異を戻します。

16.1.126 slapi_UTF-8ISLOWER()

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

16.1.126.1 構文

#include "slapi-plugin.h"
 int slapi_UTF-8ISLOWER(char *s);

16.1.126.2 パラメータ

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

s

UTF-8の単一文字(マルチバイト可)へのポインタ

16.1.126.3 戻り値

この関数は、文字が小文字である場合には1を戻し、小文字でない場合には0を戻します。

16.1.127 slapi_UTF-8ISUPPER()

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

16.1.127.1 構文

#include "slapi-plugin.h"
 int slapi_UTF-8ISUPPER(char *s);

16.1.127.2 パラメータ

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

s

UTF-8の単一文字(マルチバイト可)へのポインタ

16.1.127.3 戻り値

この関数は、文字が大文字である場合には1を戻し、大文字でない場合には0を戻します。

16.1.128 slapi_UTF-8STRTOLOWER()

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

16.1.128.1 構文

#include "slapi-plugin.h"
 unsigned char *slapi_UTF-8STRTOLOWER(char *s);

16.1.128.2 パラメータ

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

s

小文字に変換する、NULLで終了するUTF-8文字列

16.1.128.3 戻り値

この関数は、NULLで終了するUTF-8文字列(小文字に変換される)へのポインタを戻します。大文字でない文字はそのままコピーされます。文字列がUTF-8文字列でない場合、この関数はNULLを戻します。

16.1.128.4 説明

この関数は、slapi_UTF-8TOLOWER()での場合のようにUTF-8の単一文字を変換するのではなく、複数文字の文字列を変換します。

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

割り当てられた出力文字列は、必要でなくなったときにリリースする必要があります。

16.1.128.6 関連項目

slapi_UTF-8TOLOWER()

16.1.129 slapi_UTF-8STRTOUPPER()

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

16.1.129.1 構文

#include "slapi-plugin.h"
 unsigned char *slapi_UTF-8STRTOUPPER(char *s);

16.1.129.2 パラメータ

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

s

大文字に変換するNULLで終了するUTF-8文字列

16.1.129.3 戻り値

この関数は、大文字に変換された文字を含むNULLで終了するUTF-8文字列を戻します。小文字でない文字はそのままコピーされます。文字列がUTF-8文字列でないとみなされると、この関数はNULLを戻します。

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

この関数に割り当てられた出力文字列は、必要でなくなったときにリリースする必要があります。

16.1.130 slapi_UTF-8TOLOWER()

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

16.1.130.1 構文

#include "slapi-plugin.h"
 void slapi_UTF-8TOLOWER(char *s, char *d, int *ssz, int *dsz);

16.1.130.2 パラメータ

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

s

UTF-8の単一文字(マルチバイト可)。

d

小文字形式のsへのポインタ。このためのメモリーは、関数をコールする前に、コール元によって割り当てられる必要があります。

ssz

入力文字の長さをバイト単位で戻します。

dsz

出力文字の長さをバイト単位で戻します。

16.1.131 slapi_UTF-8TOUPPER()

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

16.1.131.1 構文

#include "slapi-plugin.h"
 void slapi_UTF-8TOUPPER(char *s, char *d, int *ssz, int *dsz);

16.1.131.2 パラメータ

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

s

UTF-8の単一文字(マルチバイト可)へのポインタ

d

大文字バージョンのsへのポインタ。このためのメモリーは、関数をコールする前に、コール元によって割り当てられる必要があります。

ssz

入力文字の長さをバイト単位で戻します。

dsz

出力文字の長さをバイト単位で戻します。

16.1.132 slapi_value_compare()

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

16.1.132.1 構文

#include "slapi-plugin.h"
 int slapi_value_compare(const Slapi_Attr *a, const Slapi_Value *v1,
    const Slapi_Value *v2);

16.1.132.2 パラメータ

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

a

2つの値の比較方法を決定するのに使用される属性へのポインタ

v1

比較する最初の値を含むSlapi_ValueSet構造体へのポインタ

v2

比較する2番目の値を含むSlapi_Value構造体へのポインタ

16.1.132.3 戻り値

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

  • 2つの値が同一である場合には、0

  • v1がv2より小さい場合には、-1

  • v1がv2より大きい場合には、1

16.1.132.4 説明

この関数は、属性aに関連付けられる一致ルールを使用して、2つのSlapi_Valuesを比較します。

この関数は、前のリリースで使用されていた非推奨のslapi_attr_value_cmp()関数に置き換わるものであり、berval属性値のかわりにSlapi_Value属性値を使用します。

16.1.133 slapi_value_done()

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

16.1.133.1 構文

#include "slapi-plugin.h"
void slapi_value_done(Slapi_Value *v);

16.1.133.2 パラメータ

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

v

その内部を解放するSlapi_Value構造体へのポインタ

16.1.134 slapi_value_dup()

値を複製します。

16.1.134.1 構文

#include "slapi-plugin.h"
 Slapi_Value * slapi_value_dup(const Slapi_Value *v);

16.1.134.2 パラメータ

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

v

複製するSlapi_Value構造体へのポインタ

16.1.134.3 戻り値

この関数は、新しく割り当てられたSlapi_Valueへのポインタを戻します。

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

新しいSlapi_Valueが割り当てられますが、これは、slapi_value_free()を使用してコール元によって解放される必要があります。

16.1.134.5 関連項目

slapi_value_free()

16.1.135 slapi_value_free()

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

16.1.135.1 構文

#include "slapi-plugin.h"
 void slapi_value_free(Slapi_Value **value);

16.1.135.2 パラメータ

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

value

解放するSlapi_Valueへのポインタのアドレス

16.1.135.3 説明

この関数は、Slapi_Value構造体および(NULLでない場合には)そのメンバーを解放し、ポインタをNULLに設定します。

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

この関数は、構造体に対する作業が完了したときにコールします。

16.1.136 slapi_valuearray_free()

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

16.1.136.1 構文

#include "slapi-plugin.h"
void slapi_valuearray_free(Slapi_Value ***value);

16.1.136.2 パラメータ

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

value

解放するSlapi_Value構造体の配列

16.1.136.3 説明

この関数は、各Slapi_Value構造体およびそのメンバーを解放し、ポインタをNULLに設定します。

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

この関数は、値の配列に対する作業が完了したときにコールします。

16.1.137 slapi_value_get_berval()

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

16.1.137.1 構文

#include "slapi-plugin.h"
 const struct berval * slapi_value_get_berval(
    const Slapi_Value *value);

16.1.137.2 パラメータ

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

value

bervalの取得元となるSlapi_Valueへのポインタ

16.1.137.3 戻り値

Slapi_Valueに含まれるberval構造体へのポインタを戻します。この関数は、コピーではない実際のberval構造体へのポインタを戻します。

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

slapi_value_set_berval()をコールして置き換える予定である場合を除き、berval構造体を解放しないでください。

16.1.137.5 関連項目

slapi_value_set_berval()

16.1.138 slapi_value_get_int()

値を整数に変換します。

16.1.138.1 構文

#include "slapi-plugin.h"
 int slapi_value_get_int(const Slapi_Value *value);

16.1.138.2 パラメータ

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

value

整数としての取得元となるSlapi_Valueへのポインタ

16.1.138.3 戻り値

この関数は、Slapi_Value構造体に格納された値に対応する整数を戻し、値がない場合には0を戻します。

16.1.138.4 説明

Slapi_Value内の値を整数に変換します。

16.1.139 slapi_value_get_length()

値の実際の長さを取得します。

16.1.139.1 構文

#include "slapi-plugin.h"
 size_t slapi_value_get_length(const Slapi_Value *value);

16.1.139.2 パラメータ

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

value

長さの取得元となるSlapi_Valueへのポインタ

16.1.139.3 戻り値

この関数は、Slapi_Valueに含まれた値の長さを戻し、値がない場合には0を戻します。

16.1.139.4 説明

この関数は、Slapi_Value構造体に含まれる値の実際の長さを戻します。

16.1.140 slapi_value_get_long()

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

16.1.140.1 構文

#include "slapi-plugin.h"
 long slapi_value_get_long(const Slapi_Value *value);

16.1.140.2 パラメータ

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

value

Long整数としての取得元となるSlapi_Valueへのポインタ

16.1.140.3 戻り値

この関数は、Slapi_Value構造体に格納された値に対応するLong整数を戻し、値がない場合には0を戻します。

16.1.140.4 説明

この関数は、Slapi_Value構造体に含まれた値をLong整数に変換します。

16.1.141 slapi_value_get_string()

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

16.1.141.1 構文

#include "slapi-plugin.h"
 const char * slapi_value_get_string(const Slapi_Value *value);

16.1.141.2 パラメータ

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

value

文字列としての取得元となるSlapi_Valueへのポインタ

16.1.141.3 戻り値

この関数は、値を含む文字列を戻し、値がない場合にはNULLを戻します。

この関数は、コピーではない、Slapi_Value内の実際の文字列値へのポインタを戻します。

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

slapi_value_set_string()をコールして置き換える予定である場合を除き、文字列を解放しないでください。

16.1.141.5 関連項目

slapi_value_set_string()

16.1.142 slapi_value_get_uint()

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

16.1.142.1 構文

#include "slapi-plugin.h"
 unsigned int slapi_value_get_uint(const Slapi_Value *value);

16.1.142.2 パラメータ

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

value

符号なし整数としての取得元となるSlapi_Valueへのポインタ

16.1.142.3 戻り値

この関数は、Slapi_Value構造体に格納された値に対応する符号なし整数を戻し、値がない場合には0を戻します。

16.1.142.4 説明

Slapi_Valueに含まれた値を符号なし整数に変換します。

16.1.143 slapi_value_get_ulong()

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

16.1.143.1 構文

#include "slapi-plugin.h"
 unsigned long slapi_value_get_ulong(const Slapi_Value *value);

16.1.143.2 パラメータ

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

value

符号なしLong整数としての取得元となるSlapi_Valueへのポインタ

16.1.143.3 戻り値

この関数は、Slapi_Value構造体に格納された値に対応する符号なしLong整数を戻し、値がない場合には0を戻します。

16.1.143.4 説明

Slapi_Value構造体に含まれた値を符号なしLong整数に変換します。

16.1.144 slapi_value_init()

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

16.1.144.1 構文

#include "slapi-plugin.h"
 Slapi_Value * slapi_value_init(Slapi_Value *v);

16.1.144.2 パラメータ

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

v

初期化する値へのポインタ。ポインタをNULLにすることはできません。

16.1.144.3 戻り値

この関数は、初期化されたSlapi_Value構造体(自体)へのポインタを戻します。

16.1.144.4 説明

この関数は、Slapi_Value構造体を初期化し、そのすべてのフィールドをゼロにリセットします。パラメータとして渡される値は、有効なSlapi_Valueである必要があります。

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

Slapi_Value構造体の使用が終了したら、slapi_value_done()を使用して、その内部構造体を解放します。

16.1.145 slapi_value_init_berval()

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

16.1.145.1 構文

#include "slapi-plugin.h"
 Slapi_Value * slapi_value_init_berval(Slapi_Value *v,
    struct berval *bval);

16.1.145.2 パラメータ

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

v

初期化する値へのポインタポインタをNULLにすることはできません。

bval

値を初期化するために使用するberval構造体へのポインタ

16.1.145.3 戻り値

この関数は、初期化されたSlapi_Value構造体(自体)へのポインタを戻します。

16.1.145.4 説明

この関数は、berval構造体に含まれる値を使用して、Slapi_Value構造体を初期化します。berval構造体のコンテンツは複製されます。

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

Slapi_Value構造体の使用が終了したら、slapi_value_done()を使用して、その内部構造体を解放します。

16.1.146 slapi_value_init_string()

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

16.1.146.1 構文

#include "slapi-plugin.h"
 Slapi_Value * slapi_value_init_string(Slapi_Value *v,const char *s);

16.1.146.2 パラメータ

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

v

初期化する値へのポインタ。ポインタをNULLにすることはできません。

s

値の初期化に使用されるNULLで終了する文字列

16.1.146.3 戻り値

この関数は、初期化されたSlapi_Value構造体(自体)へのポインタを戻します。

16.1.146.4 説明

この関数は、文字列に含まれる値を使用して、Slapi_Value構造体を初期化します。文字列は複製されます。

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

Slapi_Value構造体の使用が終了したら、slapi_value_done()を使用して、その内部構造体を解放します。

16.1.147 slapi_value_init_string_passin()

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

16.1.147.1 構文

#include "slapi-plugin.h"
 Slapi_Value * slapi_value_init_string_passin (Slapi_value *v,
    char *s);

16.1.147.2 パラメータ

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

v

初期化する値へのポインタ。ポインタをNULLにすることはできません。

s

値の初期化に使用されるNULLで終了する文字列

16.1.147.3 戻り値

この関数は、初期化されたSlapi_Value構造体(自体)へのポインタを戻します。

16.1.147.4 説明

この関数は、文字列に含まれる値を使用して、Slapi_Value構造体を初期化します。文字列は複製されず、解放する必要があります。

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

slapi_value_free()をコールしてSlapi_Value構造体がメモリーから解放されると、文字列が解放されます。

16.1.148 slapi_value_new()

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

16.1.148.1 構文

#include "slapi-plugin.h"
 Slapi_Value * slapi_value_new();

16.1.148.2 パラメータ

この関数ではパラメータを使用しません。

16.1.148.3 戻り値

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

16.1.148.4 説明

この関数は、空のSlapi_Value構造体を戻します。APIの他の関数をコールして値を設定できます。

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

この値が必要でなくなったときには、slapi_value_free()をコールして、メモリーから解放します。

16.1.149 slapi_value_new_berval()

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

16.1.149.1 構文

#include "slapi-plugin.h"
 Slapi_Value * slapi_value_new_berval(const struct berval *bval);

16.1.149.2 パラメータ

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

bval

新しく割り当てられたSlapi_Valueを初期化するために使用するberval構造体へのポインタ

16.1.149.3 戻り値

この関数は、新しく割り当てられたSlapi_Valueへのポインタを戻します。領域を割り当てることができない場合(仮想メモリーがこれ以上存在しない場合など)、slapdプログラムは終了します。

16.1.149.4 説明

この関数は、パラメータとして渡されたberval構造体から複製された値を含む、Slapi_Value構造体を戻します。

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

この値が必要でなくなったときには、slapi_value_free()をコールして、メモリーから解放する必要があります。

16.1.150 slapi_value_new_string()

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

16.1.150.1 構文

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

16.1.150.2 パラメータ

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

s

新しく割り当てられたSlapi_Valueを初期化するために使用されるNULLで終了する文字列

16.1.150.3 戻り値

この関数は、新しく割り当てられたSlapi_Valueへのポインタを戻します。領域を割り当てることができない場合(仮想メモリーがこれ以上存在しない場合など)、slapdプログラムは終了します。

16.1.150.4 説明

この関数は、パラメータとして渡された文字列から複製された値を含む、Slapi_Value構造体を戻します。

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

この値が必要でなくなったときには、slapi_value_free()をコールして、メモリーから解放する必要があります。

16.1.151 slapi_value_new_string_passin()

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

16.1.151.1 構文

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

16.1.151.2 パラメータ

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

s

新しく割り当てられたSlapi_Value構造体を初期化するために使用されるNULLで終了する文字列

16.1.151.3 戻り値

この関数は、新しく割り当てられたSlapi_Value構造体へのポインタを戻します。領域を割り当てることができない場合(仮想メモリーが存在しない場合など)、slapdプログラムは終了します。

16.1.151.4 説明

この関数は、パラメータとして渡された文字列を含む、Slapi_Value構造体を戻します。渡された文字列をメモリーから解放することはできません。

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

値は、slapi_value_free()を使用し、コール元によって解放される必要があります。

16.1.152 slapi_value_new_value()

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

16.1.152.1 構文

#include "slapi-plugin.h"
 Slapi_Value * slapi_value_new_value(const Slapi_Value *v);

16.1.152.2 パラメータ

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

v

新しく割り当てられたSlapi_Valueを初期化するために使用するSlapi_Value構造体へのポインタ

16.1.152.3 戻り値

この関数は、新しく割り当てられたSlapi_Valueへのポインタを戻します。領域を割り当てることができない場合(仮想メモリーがこれ以上存在しない場合など)、slapdプログラムは終了します。

16.1.152.4 説明

この関数は、パラメータとして渡されたSlapi_Value構造体から複製された値を含む、Slapi_Value構造体を戻します。この関数は、slapi_value_dup()と同じです。

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

この値が必要でなくなったときは、slapi_value_free()関数をコールして、メモリーから解放する必要があります。

16.1.152.6 関連項目

slapi_value_dup()

slapi_value_free()

16.1.153 slapi_value_set()

Slapi_Value構造体に値を設定します。

16.1.153.1 構文

#include "slapi-plugin.h"
 Slapi_Value * slapi_value_set(Slapi_Value *value, void *val,
    unsigned long len);

16.1.153.2 パラメータ

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

value

値を設定するSlapi_Valueへのポインタ

val

値へのポインタ

len

値の長さ

16.1.153.3 戻り値

この関数は、値が設定されたSlapi_Valueへのポインタを戻します。

16.1.153.4 説明

この関数は、Slapi_Value構造体に値を設定します。この値はvalが指すデータの複製であり、長さはlenです。

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

Slapi_Value構造体へのポインタがNULLである場合、何も実行されず、関数はNULLを戻します。Slapi_Value構造体にすでに値が含まれている場合、この値は、新しい値が設定される前にメモリーから解放されます。

Slapi_Value構造体が必要でなくなったときには、slapi_value_free()をコールして、メモリーから解放する必要があります。

16.1.153.6 関連項目

slapi_value_free()

16.1.154 slapi_value_set_berval()

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

16.1.154.1 構文

#include "slapi-plugin.h"
 Slapi_Value * slapi_value_set_berval(Slapi_Value *value,
    const struct berval *bval );

16.1.154.2 パラメータ

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

value

値を設定するSlapi_Value構造体へのポインタ

bval

コピーするberval値へのポインタ

16.1.154.3 戻り値

この関数は、パラメータとして渡されたSlapi_Value構造体へのポインタを戻し、これがNULLであった場合にはNULLを戻します。

16.1.154.4 説明

この関数は、Slapi_Value構造体の値を設定します。値はberval構造体のbvalから複製されます。

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

Slapi_Value構造体へのポインタがNULLである場合、何も実行されず、関数はNULLを戻します。Slapi_Valueにすでに値が含まれている場合、この値は、新しい値が設定される前にメモリーから解放されます。

Slapi_Value構造体が必要でなくなったときには、slapi_value_free()をコールして、メモリーから解放する必要があります。

16.1.154.6 関連項目

slapi_value_free()

16.1.155 slapi_value_set_int()

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

16.1.155.1 構文

#include "slapi-plugin.h"
 int slapi_value_set_int(Slapi_Value *value, int intVal);

16.1.155.2 パラメータ

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

value

整数値を設定するSlapi_Value構造体へのポインタ

intVal

設定する値を含む整数

16.1.155.3 戻り値

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

  • 値が設定されている場合には、0

  • Slapi_ValueへのポインタがNULLである場合には、-1

16.1.155.4 説明

この関数は、整数intValからSlapi_Value構造体の値を設定します。

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

Slapi_Value構造体へのポインタがNULLである場合、何も実行されず、関数は-1を戻します。Slapi_Valueにすでに値が含まれている場合、この値は、新しい値が設定される前にメモリーから解放されます。

Slapi_Value構造体が必要でなくなったときには、slapi_value_free()をコールして、メモリーから解放する必要があります。

16.1.155.6 関連項目

slapi_value_free()

16.1.156 slapi_value_set_string()

Slapi_Value構造体の値の文字列をコピーします。

16.1.156.1 構文

#include "slapi-plugin.h"
 int slapi_value_set_string(Slapi_Value *value, const char *strVal);

16.1.156.2 パラメータ

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

value

値を設定するSlapi_Value構造体へのポインタ

strVal

設定する値を含む文字列

16.1.156.3 戻り値

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

  • 値が設定されている場合には、0

  • Slapi_ValueへのポインタがNULLである場合には、-1

16.1.156.4 説明

この関数は、文字列strValを複製することによって、Slapi_Value構造体の値を設定します。

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

Slapi_ValueへのポインタがNULLである場合、何も実行されず、関数は-1を戻します。Slapi_Valueにすでに値が含まれている場合、この値は、新しい値が設定される前にメモリーから解放されます。

Slapi_Value構造体が必要でなくなったときには、slapi_value_free()をコールして、メモリーから解放する必要があります。

16.1.156.6 関連項目

slapi_value_free()

16.1.157 slapi_value_set_string_passin()

文字列から、Slapi_Value構造体の値を設定します。

16.1.157.1 構文

#include "slapi-plugin.h"
 int slapi_value_set_string_passin(Slapi_Value *value, char *strVal);

16.1.157.2 パラメータ

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

value

値を設定するSlapi_Value構造体へのポインタ

strVal

設定する値を含む文字列

16.1.157.3 戻り値

この関数は、値が設定されている場合には0を戻し、Slapi_Value構造体へのポインタがNULLである場合には-1を戻します。

16.1.157.4 説明

この関数は、文字列strValを使用して、Slapi_Value構造体の値を設定します。Slapi_Value構造体にすでに値が含まれている場合、この値は、新しい値が設定される前にメモリーから解放されます。文字列strValをメモリーから解放することはできません。

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

メモリーから解放する構造体に対する作業が完了したら、slapi_value_free()を使用します。

16.1.158 slapi_value_set_value()

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

16.1.158.1 構文

#include "slapi-plugin.h"
 Slapi_Value * slapi_value_set_value(Slapi_Value *value,
    const Slapi_Value *vfrom);

16.1.158.2 パラメータ

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

value

値を設定するSlapi_Valueへのポインタ

vfrom

値の取得元となるSlapi_Valueへのポインタ

16.1.158.3 戻り値

この関数は、パラメータとして渡されたSlapi_Value構造体へのポインタを戻し、これがNULLであった場合にはNULLを戻します。

16.1.158.4 説明

この関数は、Slapi_Value構造体の値を設定します。この値はSlapi_Value構造体のvfromから複製されます。vfromNULLにすることはできません。

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

Slapi_ValueへのポインタがNULLである場合、何も実行されず、関数はNULLを戻します。Slapi_Valueにすでに値が含まれている場合、この値は、新しい値が設定される前に解放されます。

Slapi_Value構造体が必要でなくなったときには、slapi_value_free()をコールして、メモリーから解放する必要があります。

16.1.158.6 関連項目

slapi_value_free()

16.1.159 slapi_valueset_add_value_optimised()

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

16.1.159.1 構文

#include "slapi-plugin.h"
 void slapi_valueset_add_value_optimised(Slapi_ValueSet *vs,
    const Slapi_Value *addval, void *syntax_plugin);

16.1.159.2 パラメータ

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

vs

値を追加するSlapi_ValueSet構造体へのポインタ

addval

Slapi_ValueSetに追加するSlapi_Valueへのポインタ

syntax_plugin

slapi_attr_get_plugin()を使用して取得される、この属性タイプのプラグインへのポインタ

16.1.159.3 説明

この関数は、Slapi_Value構造体の形式で値をSlapi_ValueSet構造体に追加します。

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

値はSlapi_Value構造体から複製され、値の使用後には、Slapi_ValueSet構造体を変更することなくメモリーから解放できます。

この関数では、Slapi_ValueSet構造体に値がすでに存在するかどうかは検証しません。このことは、slapi_valueset_first_value_const()およびslapi_valueset_next_value_const()を使用して、手動で確認できます。

16.1.160 slapi_valueset_count()

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

16.1.160.1 構文

#include "slapi-plugin.h"
 int slapi_valueset_count(const Slapi_ValueSet *vs);

16.1.160.2 パラメータ

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

vs

件数の取得元となるSlapi_ValueSet構造体へのポインタ

16.1.160.3 戻り値

この関数は、Slapi_ValueSet構造体に含まれる値の数を戻します。

16.1.161 slapi_valueset_done()

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

16.1.161.1 構文

#include "slapi-plugin.h"
 void slapi_valueset_done(Slapi_ValueSet *vs);

16.1.161.2 パラメータ

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

vs

その値を解放するSlapi_ValueSet構造体へのポインタ

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

この値が必要でなくなったものの、新しい値セットにSlapi_ValueSet構造体を再利用する場合は、この関数を使用します。

16.1.162 slapi_valueset_find_const()

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

#include "slapi-plugin.h"
const Slapi_Value *slapi_valueset_find(const Slapi_Attr *a,
    const Slapi_ValueSet *vs, const Slapi_Value *v);

16.1.162.1 パラメータ

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

a

属性へのポインタ。これは、値の構文および値の一致方法を決定するために使用されます。

vs

値の取得元となるSlapi_ValueSet構造体へのポインタ。

v

戻り値のSlapi_Value構造体へのポインタのアドレス。

16.1.162.2 戻り値

この関数は、値が検出された場合、値セットの値へのポインタを戻します。それ以外の場合はNULLを戻します。

16.1.162.3 説明

この関数を使用して、属性の重複値を確認します。

16.1.163 slapi_valueset_first_value_const()

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

16.1.163.1 構文

#include "slapi-plugin.h"
int slapi_valueset_first_value_const(const Slapi_ValueSet *vs,
    const Slapi_Value **v);

16.1.163.2 パラメータ

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

vs

値の取得元となるSlapi_ValueSet構造体へのポインタ。

v

戻り値のSlapi_Value構造体へのポインタのアドレス。

16.1.163.3 戻り値

この関数は、Slapi_ValueSetの値の索引を戻し、値がなかった場合には-1を戻します。

16.1.163.4 説明

この関数は、Slapi_ValueSetの最初の値を取得したり、すべての値に対して処理を繰り返す場合にコールします。戻り値はSlapi_ValueSet構造体内の値の索引であり、次の値を取得するslapi_valueset_next_value_const()をコールするために渡される必要があります。

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

この関数は、Slapi_ValueSet内の実際の値へのポインタを戻します。これをメモリーから解放しないでください。

16.1.163.6 関連項目

slapi_valueset_next_value_const()

16.1.164 slapi_valueset_free()

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

16.1.164.1 構文

#include "slapi-plugin.h"
 void slapi_valueset_free(Slapi_ValueSet *vs)

16.1.164.2 パラメータ

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

vs

解放するSlapi_ValueSetへのポインタ

16.1.164.3 説明

この関数は、Slapi_ValueSet構造体および(NULLでない場合には)そのメンバーを解放します。この関数は、構造体に対する作業が完了したときにコールします。

16.1.164.4 関連項目

slapi_valueset_done()

16.1.165 slapi_valueset_init()

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

16.1.165.1 構文

#include "slapi-plugin.h"
 void slapi_valueset_init(Slapi_ValueSet *vs);

16.1.165.2 パラメータ

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

vs

リセットするSlapi_ValueSetへのポインタ

16.1.165.3 説明

この関数は、Slapi_ValueSet構造体に含まれる値を初期化します(値を0に設定します)。これにより、構造体に含まれる値が解放されることはありません。値を解放するには、slapi_valueset_done()を使用します。

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

Slapi_ValueSet構造体が必要でなくなったときには、slapi_valueset_free()を使用して、メモリーから解放する必要があります。

16.1.166 slapi_valueset_new()

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

16.1.166.1 構文

#include "slapi-plugin.h"
 Slapi_ValueSet *slapi_valueset_new( void );

16.1.166.2 パラメータ

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

16.1.166.3 戻り値

この関数は、新しく割り当てられたSlapi_ValueSet構造体へのポインタを戻します。領域を割り当てることができない場合(仮想メモリーがこれ以上存在しない場合など)、slapdプログラムは終了します。

16.1.166.4 説明

この関数は、空のSlapi_ValueSet構造体を戻します。APIの他のslapi_valueset関数をコールして、Slapi_ValueSet構造体に値を設定できます。

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

この値が必要でなくなったときには、slapi_valueset_free()をコールして、メモリーから解放する必要があります。

16.1.166.6 関連項目

slapi_valueset_free()

16.1.167 slapi_valueset_next_value_const()

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

16.1.167.1 構文

#include "slapi-plugin.h"
int slapi_valueset_next_value_const(const Slapi_ValueSet *vs, int index,
    const Slapi_Value **v);

16.1.167.2 パラメータ

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

vs

値の取得元となるSlapi_ValueSet構造体へのポインタ。

index

slapi_valueset_next_value_const ()またはslapi_valueset_first_value_const()への以前のコールによって戻された値

v

戻り値のSlapi_Value構造体へのポインタへのアドレス

16.1.167.3 戻り値

この関数は、Slapi_ValueSetの値の索引を戻し、値がこれ以上存在しないか、または入力索引が正しくない場合には-1を戻します。

16.1.167.4 説明

この関数は、最初にslapi_valueset_first_value_const()をコールした後、Slapi_ValueSetの次の値を取得する場合にコールします。戻り値はSlapi_ValueSet構造体内の値の索引であり、slapi_valueset_next_value_const()に渡される必要があります。

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

この関数は、Slapi_ValueSet内の実際の値へのポインタを戻し、このポインタをメモリーから解放しないようにする必要があります。

16.1.167.6 関連項目

slapi_valueset_first_value_const()

16.1.168 slapi_valueset_set_from_smod()

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

16.1.168.1 構文

#include "slapi-plugin.h"
 void slapi_valueset_set_from_smod(Slapi_ValueSet *vs,
    Slapi_Mod *smod);

16.1.168.2 パラメータ

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

vs

値のコピー先となるSlapi_ValueSet構造体へのポインタ

smod

値のコピー元となるSlapi_Mod構造体へのポインタ

16.1.168.3 説明

この関数は、Slapi_Mod構造体に含まれるすべての値をSlapi_ValueSet構造体にコピーします。

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

この関数では、Slapi_ValueSet構造体に値がすでに含まれていることは検証されないため、この関数をコールする前に、値がないことを自分で検証する必要があります。この検証を行わないと、割り当てられたメモリー領域がリークします。slapi_valueset_done()をコールして、既存の値を解放できます。

16.1.168.5 関連項目

slapi_valueset_done()

16.1.169 slapi_valueset_set_valueset_optimised()

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

16.1.169.1 構文

#include "slapi-plugin.h"
 void slapi_valueset_set_valueset_optimised(Slapi_ValueSet *vs1,
    const Slapi_ValueSet *vs2, void *syntax_plugin);

16.1.169.2 パラメータ

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

vs1

値の設定先となるSlapi_ValueSet構造体へのポインタ

vs2

値のコピー元となるSlapi_ValueSet構造体へのポインタ

syntax_plugin

slapi_attr_type2plugin()を使用して取得される、この属性タイプのプラグインへのポインタ

16.1.169.3 説明

この関数は、別のSlapi_ValueSet構造体に含まれる値をコピーすることによって、Slapi_ValueSet構造体を初期化します。

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

この関数では、Slapi_ValueSet構造体に値が含まれていることは検証されないため、この関数をコールする前に、値がないことを自分で検証する必要があります。この検証を行わないと、割り当てられたメモリー領域がリークします。slapi_valueset_done()をコールして、既存の値を解放できます。

16.1.169.5 関連項目

slapi_valueset_done()

16.1.170 slapi_vattr_attr_free()

仮想属性を解放します。

16.1.170.1 構文

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

16.1.170.2 パラメータ

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

a

解放する属性

buffer_flags

SLAPI_VIRTUALATTRS_RETURNED_POINTERSSLAPI_VIRTUALATTRS_RETURNED_COPIESSLAPI_VIRTUALATTRS_REALATTRS_ONLYSLAPI_VIRTUALATTRS_RETURNED_TYPENAME_ONLYのビットマスク

16.1.170.3 説明

仮想属性に対する作業が完了したら、この関数を使用して解放します。

16.1.170.4 関連項目

slapi_vattr_attrs_free()

16.1.171 slapi_vattr_attrs_free()

仮想属性のリストを解放します。

16.1.171.1 構文

#include "slapi-plugin.h"
void slapi_vattr_attrs_free(vattr_type_thang **types, int flags);

16.1.171.2 パラメータ

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

types

解放する属性のリスト

flags

slapi_vattr_list_attrs()flagsとして渡されるSLAPI_REALATTRS_ONLYSLAPI_VIRTUALATTRS_ONLYSLAPI_VIRTUALATTRS_REQUEST_POINTERSSLAPI_VIRTUALATTRS_LIST_OPERATIONAL_ATTRSのビットマスク

16.1.171.3 説明

この関数を使用して、slapi_vattr_list_attrs()を使用して取得される仮想属性のリストを解放します。

16.1.172 slapi_vattr_filter_test()

仮想属性を含む可能性のあるエントリに対するフィルタをテストします。

16.1.172.1 構文

#include "slapi-plugin.h"
int slapi_vattr_filter_test( Slapi_PBlock *pb, Slapi_Entry *e,
    struct slapi_filter *f, int verify_access);

16.1.172.2 パラメータ

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

pb

検索リクエストを含むパラメータ・ブロック

e

候補エントリ

f

確認するフィルタ

verify_access

確認前にエントリへのアクセスを検証するには1、それ以外の場合には0

16.1.172.3 説明

この関数は、候補エントリeがフィルタfと一致するかどうかを確認します。LDAP v3拡張一致フィルタはサポートされていません。

16.1.172.4 戻り値

この関数は、フィルタが一致するか、またはフィルタがNULLの場合には、0を戻します。そうでない場合は、-1を戻します。

16.1.173 slapi_vattr_is_registered()

属性が仮想である可能性があるかどうかを確認します。

16.1.173.1 構文

#include "slapi-plugin.h"
int slapi_vattr_is_registered(const char *attrtype,
    const char *scopendn);

16.1.173.2 パラメータ

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

attrtype

確認する属性タイプ

scopendn

確認する範囲のベース

16.1.173.3 説明

この関数は、指定された範囲内の属性タイプについて、仮想属性サービスが登録されているかどうかを確認します。

仮想属性サービスが属性タイプに登録されているという事実は、現在、サービスにより値を提供できることを保証するわけではありません。

16.1.173.4 戻り値

この関数は、指定された範囲において属性が仮想である可能性がある場合には、1を戻します。それ以外の場合は0を戻します。

16.1.174 slapi_vattr_is_virtual()

属性が仮想属性として生成されているかどうかを確認します。

16.1.174.1 構文

#include "slapi-plugin.h"
int slapi_vattr_is_virtual( Slapi_Entry *e, const char *attrtype,
    Slapi_Value *v);

16.1.174.2 パラメータ

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

e

確認するエントリ。

attrtype

確認する属性タイプ。

v

現在は使用されていません。

16.1.174.3 戻り値

この関数は、属性値が仮想属性として生成されている場合には1を戻します。それ以外の場合は0を戻します。

16.1.175 slapi_vattr_list_attrs()

エントリの実在属性および仮想属性のリストを取得します。

16.1.175.1 構文

#include "slapi-plugin.h"
int slapi_vattr_list_attrs(Slapi_Entry *e,
    vattr_type_thang **types, int flags, int *buffer_flags);

16.1.175.2 パラメータ

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

e

取得する属性のエントリ

types

サーバーによって設定された属性のリスト

flags

リストに何を設定するかを決定するSLAPI_REALATTRS_ONLYSLAPI_VIRTUALATTRS_ONLYSLAPI_VIRTUALATTRS_REQUEST_POINTERSSLAPI_VIRTUALATTRS_LIST_OPERATIONAL_ATTRSのビットマスク

buffer_flags

仮想属性がどのように処理されるかを決定するSLAPI_VIRTUALATTRS_RETURNED_POINTERSSLAPI_VIRTUALATTRS_RETURNED_COPIESSLAPI_VIRTUALATTRS_REALATTRS_ONLYSLAPI_VIRTUALATTRS_RETURNED_TYPENAME_ONLYのビットマスク

16.1.175.3 説明

この関数は、flagsパラメータに応じて、エントリeの属性の全リストを指すtypesを設定します。リストを解放する場合には、buffer_flagsパラメータを使用します。

属性にアクセスするには、slapi_vattr_values_type_thang_get()を使用します。

16.1.175.4 戻り値

この関数は、指定された範囲において属性が仮想である可能性がある場合には、1を戻します。それ以外の場合は0を戻します。

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

typesリストに対する作業が完了したら、slapi_vattr_attrs_free()を使用して解放します。

16.1.176 slapi_vattr_value_compare()

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

16.1.176.1 構文

#include "slapi-plugin.h"
int slapi_vattr_value_compare( Slapi_Entry *e, char *type,
    Slapi_Value *test_this, int *result, int flags);

16.1.176.2 パラメータ

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

e

比較するエントリ。

type

属性タイプ名。

test_this

テストする値。

result

比較がtrueの場合には0、比較がfalseの場合には1。

flags

使用されません。このパラメータには0を渡す必要があります。

16.1.176.3 戻り値

この関数は、成功した場合には0を戻し、このとき、resultに比較の結果が含まれます。

それ以外の場合、この関数は次を戻します。

  • SLAPI_VIRTUALATTRS_LOOP_DETECTED (仮想属性の評価に失敗しました)

  • SLAPI_VIRTUAL_NOT_FOUND (エントリ内の仮想属性および実在属性によってタイプを認識できません)

  • ENOMEM (メモリー・エラー)

16.1.176.4 説明

この関数をコールした後、slapi_vattr_values_free()をコールする必要はありません。

16.1.177 slapi_vattr_values_free()

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

16.1.177.1 構文

#include "slapi-plugin.h"
void slapi_vattr_values_free(Slapi_ValueSet **value,
    char **actual_type_name, int flags);

16.1.177.2 パラメータ

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

value

解放する値セット。

actual_type_name

タイプ名のリスト。

flags

slapi_vattr_values_get_ex()から戻されるバッファ・フラグ。これには、解放する必要があるオブジェクトをこの関数によって決定する必要があるという情報が含まれます。

16.1.177.3 説明

この関数は、slapi_vattr_values_get_ex()から戻された値セットおよびタイプ名を解放する場合に使用する必要があります。

16.1.177.4 関連項目

slapi_vattr_values_get_ex()

16.1.178 slapi_vattr_values_get_ex()

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

16.1.178.1 構文

#include "slapi-plugin.h"
int slapi_vattr_values_get_ex(Slapi_Entry *e, char *type,
    Slapi_ValueSet*** results, int **type_name_disposition,
    char ***actual_type_name, int flags, int *buffer_flags,
    int *subtype_count);

16.1.178.2 パラメータ

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

e

値の取得元となるエントリ。

type

属性タイプ名。

results

結果セットへのポインタ。

type_name_disposition

一致する結果。

actual_type_name

検出されたとおりのタイプ名。

flags

オプションのビットマスク。有効な値は次のとおりです。

  • SLAPI_REALATTRS_ONLY

  • SLAPI_VIRTUALATTRS_ONLY

  • SLAPI_VIRTUALATTRS_REQUEST_POINTERS

  • SLAPI_VIRTUALATTRS_LIST_OPERATIONAL_ATTRS

buffer_flags

slapi_vattr_values_free()の入力フラグとして使用されるビットマスク。

subtype_count

一致したサブタイプの数。

16.1.178.3 戻り値

この関数は、成功した場合には0を戻し、このとき、次のことが該当します。

  • resultsには、eに含まれるすべてのサブタイプのタイプについて現在の値が含まれます。

  • type_name_dispositionには、各タイプがどのように一致したかに関する情報が含まれます。有効な値は次のとおりです。

    • SLAPI_VIRTUALATTRS_TYPE_NAME_MATCHED_EXACTLY_OR_ALIAS

    • SLAPI_VIRTUALATTRS_TYPE_NAME_MATCHED_SUBTYPE

    actual_type_nameには、検出されたとおりのタイプ名が含まれます。

  • buffer_flagsには、slapi_vattr_values_free()の入力フラグとして使用されるビットマスクが含まれます。

  • subtype_countには、一致したサブタイプの数が含まれます。

    それ以外の場合、この関数は次を戻します。

  • SLAPI_VIRTUALATTRS_LOOP_DETECTED (仮想属性の評価に失敗しました)

  • SLAPI_VIRTUAL_NOT_FOUND (エントリ内の仮想属性および実在属性によってタイプを認識できません)

  • ENOMEM (メモリー・エラー)

16.1.178.4 説明

この関数は、指定された属性タイプの任意のサブタイプに対する値など、エントリからの属性タイプの値を戻します。要求された場合は、このエントリ内の仮想属性の値がルーチンによって戻されます。

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

slapi_vattr_values_free()を使用して、このルーチンから戻されたbuffer_flags値を渡し、戻された結果セットおよびタイプ名を解放する必要があります。

16.1.178.6 関連項目

slapi_vattr_values_free()

16.1.179 slapi_vattr_values_type_thang_get()

エントリの実在属性および仮想属性のリストから、値を取得します。

16.1.179.1 構文

#include "slapi-plugin.h"
int slapi_vattr_values_type_thang_get(Slapi_Entry *e,
    vattr_type_thang *type_thang, Slapi_ValueSet** results,
    int *type_name_disposition, char **actual_type_name,
    int flags, int *buffer_flags);

16.1.179.2 パラメータ

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

e

属性が属するエントリ。

type_thang

実在または仮想属性のタイプ。

results

サーバーによって設定された、属性の値。

type_name_disposition

タイプ名の一致方法を反映するようにサーバーによって設定され、SLAPI_VIRTUALATTRS_TYPE_NAME_MATCHED_EXACTLY_OR_ALIASSLAPI_VIRTUALATTRS_TYPE_NAME_MATCHED_SUBTYPESLAPI_VIRTUALATTRS_NOT_FOUND (エントリ上にタイプの一致する実在属性または仮想属性がありません)またはSLAPI_VIRTUALATTRS_LOOP_DETECTED (仮想属性を評価できませんでした)のいずれかです。

actual_type_name

検出された実際のタイプ名に対してサーバーによって設定されます。

flags

slapi_vattr_list_attrs()を使用してリストを取得するときに適用されるSLAPI_REALATTRS_ONLYSLAPI_VIRTUALATTRS_ONLYSLAPI_VIRTUALATTRS_REQUEST_POINTERSSLAPI_VIRTUALATTRS_LIST_OPERATIONAL_ATTRSのビットマスク。

buffer_flags

SLAPI_VIRTUALATTRS_RETURNED_POINTERSSLAPI_VIRTUALATTRS_RETURNED_COPIESSLAPI_VIRTUALATTRS_REALATTRS_ONLYSLAPI_VIRTUALATTRS_RETURNED_TYPENAME_ONLYのビットマスクに対してサーバーによって設定され、リストの解放に役立ちます。

16.1.179.3 説明

この関数を使用すると、slapi_vattr_list_attrs()によって設定されたリスト内の属性値に、最適な方法でアクセスできます。

16.1.179.4 戻り値

この関数は、成功した場合には0を戻し、このとき、次のことが該当します。

  • resultsには、eに含まれるすべてのサブタイプのタイプについて現在の値が含まれます。

  • type_name_dispositionには、各タイプがどのように一致したかに関する情報が含まれます。有効な値は次のとおりです。

    • SLAPI_VIRTUALATTRS_TYPE_NAME_MATCHED_EXACTLY_OR_ALIAS

    • SLAPI_VIRTUALATTRS_TYPE_NAME_MATCHED_SUBTYPE

    actual_type_nameには、検出されたとおりのタイプ名が含まれます。

  • buffer_flagsには、slapi_vattr_values_free()の入力フラグとして使用されるビットマスクが含まれます。

  • subtype_countには、一致したサブタイプの数が含まれます。

    それ以外の場合、この関数は次を戻します。

  • SLAPI_VIRTUALATTRS_LOOP_DETECTED (仮想属性の評価に失敗しました)

  • SLAPI_VIRTUAL_NOT_FOUND (エントリ内の仮想属性および実在属性によってタイプを認識できません)

  • ENOMEM (メモリー・エラー)

16.1.179.5 関連項目

vattr_type_thang

slapi_vattr_list_attrs()

16.1.180 slapi_wait_condvar()

条件変数における変更を待機します。

16.1.180.1 構文

#include "slapi-plugin.h"
int slapi_wait_condvar(Slapi_CondVar *cvar,struct timeval *timeout);

16.1.180.2 パラメータ

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

cvar

待機する条件変数。

timeout

NULLは、通知されるまでブロックすることを意味します。それ以外の場合、時間になるまでブロックしてから、ロックの取得を再試行します。

16.1.180.3 説明

この関数を使用すると、待機と通知のメカニズムを使用したスレッド同期を実行できます。

16.1.180.4 戻り値

成功した場合、この関数は1を戻します。それ以外の場合はNULLを戻します。

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

条件変数に対する変更を他のスレッドに通知するには、slapi_notify_condvar()をコールします。