Interstage Application Server Smart Repository運用ガイド |
目次
索引
![]() ![]() |
第6章 アプリケーションの作成(C API) | > 6.3 サンプルプログラム |
サンプルプログラムのコンパイルから実行までの手順について説明します。
Windows Server 2003 for Itanium-based Systems版ではない場合
Windows Server 2003 for Itanium-based Systems版の場合
Windows(R) 2000 Server、Windows(R) 2000 Advanced Server、およびWindows(R) 2000 Professional上では、Microsoft(R) Visual Studio(R) 2005を使ってアプリケーションを開発できません。他のOS上で開発してください。
chmod -R +w example |
パラメタ一覧を以下に示します。
サンプル種別(注)
パラメタ
概要
備考
共通パラメタ
host
接続するリポジトリサーバのホスト名、またはIPアドレス
port
リポジトリサーバのポート番号
デフォルトのポート番号は以下のようになります。
- LDAP_PORT: 389
- LDAP_SSL_PORT: 636(SSL通信用)binddn
BINDするためのDN
passwd
BINDするためのパスワード
sslenv
SSLENV構造体のアドレス
構造体の各メンバについては、“リファレンスマニュアル(API編)”の “Smart Repositoryインタフェース”- “ldapssl_init()”を参照してください。
エントリの検索
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
注)サンプル種別は、“サンプルプログラムのファイル一覧”と対応しています。
SDKのライブラリ(libirepldap2.so)へのパスを解決してください。
上記で作成された実行ファイルを直接実行します。
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では、サンプルプログラムが正常に終了したことを示します。なお、上記はSolaris版の実行例です。
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エラーコード”を参照してください。
なお、上記はSolaris版の実行例です。
目次
索引
![]() ![]() |