Interstage Application Server Smart Repositoryユーザーズガイド |
目次
索引
![]() ![]() |
第2章 アプリケーションの作成(C API) | > 2.3 サンプルプログラム |
サンプルプログラムのコンパイルから実行までの手順について説明します。
サンプルプログラムは以下の位置にあります。
“/opt/FJSVidsdk/C/example”
chmod +w example
パラメタ一覧を以下に示します。
サンプル種別(注)
パラメタ
概要
備考
共通パラメタ
host
接続するリポジトリサーバのホスト名、またはIPアドレス
port
リポジトリサーバのポート番号
デフォルトのポート番号は以下のようになります。
- LDAP_PORT: 389binddn
BINDするためのDN
passwd
BINDするためのパスワード
エントリの検索
s_base
サーチベースのDN
scope
検索対象範囲
以下のどれか1つを指定します。
- LDAP_SCOPE_BASE: s_baseで指定したエントリを検索
- LDAP_SCOPE_ONELEVEL: s_baseで指定したエントリの1階層下のエントリを検索
- LDAP_SCOPE_SUBTREE: s_baseで指定したエントリとその配下の全エントリの中から検索filter
検索フィルタ
すべてのエントリを検索する場合は、“(objectClass=*)”を指定してください。
attrs
通知する属性名
複数の属性名を配列で指定します。配列の最後には、NULLを設定する必要があります。
属性値の比較
cmp_dn
比較を行うエントリのDN
attr
比較を行う属性名
value
比較対象の文字列データ
エントリの変更
mod_dn
変更するエントリのDN
mods
変更する属性情報
(LDAPMod構造体のポインタ配列のアドレス)
構造体の各項目に設定する値は、“リファレンスマニュアル(API編)”の“Smart Repositoryインタフェース”-“ldap_modify()”を参照してください。
エントリの変名
old_dn
変名するエントリのDN
new_dn
変名後のDN
変名後のDNをもつエントリが存在しないように、サンプルプログラム内で事前にエントリが削除されます。
new_rdn
新しいRDN
mods
追加する属性情報
(LDAPMod構造体のポインタ配列のアドレス)
サンプルプログラム内で変名するエントリが事前に作成されます。構造体の各項目に設定する値は、“リファレンスマニュアル(API編)”の“Smart Repositoryインタフェース”-“ldap_add()”を参照してください。
NMODS
追加するエントリの属性の数
modsの配列長を指定してください。
work_area
作業用の構造体
日本語を扱う場合に、modsの内容に合わせ変更する必要があります。
エントリの追加
add_dn
追加するエントリのDN
mods
追加する属性情報
(LDAPMod構造体のポインタ配列のアドレス)
構造体の各項目に設定する値は、“リファレンスマニュアル(API編)”の“Smart Repositoryインタフェース”-“ldap_add()”を参照してください。
NMODS
追加する属性名の数
modsの配列長を指定してください。
work_area
作業用の構造体
日本語を扱う場合に、modsの内容に合わせ変更する必要があります。
エントリの削除
del_dn
削除するエントリのDN
注)サンプル種別は、“サンプルプログラムのファイル一覧”と対応しています。
上記で作成された実行ファイルを直接実行します。
サンプルの日本語表示はEUC環境を前提としています。サンプルを動作させるターミナルの環境がEUC以外の場合、文字化けする場合があります。ターミナルの環境をEUCに設定してください。
1)サンプルプログラムが成功する場合(同期型のエントリ変更)
# ./modattrs ・・・ サンプルプログラム実行
./modattrs is start
./modattrs: ldap_init( "host1", 389 )
./modattrs: ldap_set_option( LDAP_OPT_PROTOCOL_VERSION, 3 )
./modattrs: ldap_simple_bind_s( "cn=manager,ou=interstage,o=fujitsu,dc=com", "******" )
./modattrs: ldap_modify_s( "uid=100001,ou=interstage,o=fujitsu,dc=com", ****** )
./modattrs: ldap_unbind( )
./modattrs is normal end
例1では、サンプルプログラムが正常に終了したことを示します。
2)サンプルプログラムが失敗する場合(非同期型のエントリ検索)
# ./search ・・・ サンプルプログラム実行
./search is start
./search: ldap_init( "host1", 389 )
./search: ldap_set_option( LDAP_OPT_PROTOCOL_VERSION, 3 )
./search: ldap_simple_bind_s( "cn=manager,ou=interstage,o=fujitsu,dc=com", "******" )
ldap_simple_bind_s: Can't contact LDAP server
./search: ldap_unbind( )
./search is abnormal end
例2では、サンプルプログラム(search.c)中のldap_simple_bind_s()でエラーとなっています。エラーメッセージ「Can't contact LDAP server」から、リポジトリサーバが起動されていない、または接続先サーバ情報に誤りがあるなどの原因が考えられます。
サンプルプログラムで出力されるメッセージについては、“メッセージ集”の“LDAPエラーコード”を参照してください。
目次
索引
![]() ![]() |