ここでは、クライアントAPI関数を呼び出す際に使用する構造体について説明します。
名前
berval
形式
struct berval {
        unsigned long bv_len;
        char         *bv_val;
};使用方法
この構造体は、文字列やバイナリデータを指定する場合に使用します。
メンバ
文字列、またはバイナリデータのサイズ
文字列、またはバイナリデータのアドレス
名前
LDAPAPIInfo
形式
typedef struct ldapapiinfo {
        int ldapai_info_version;
        int ldapai_api_version;
        int ldapai_protocol_version;
        char **ldapai_extensions;
        char *ldapai_vendor_name;
        int ldapai_vendor_version;
} LDAPAPIInfo;
使用方法
この構造体は、ldap_get_option()でライブラリのバージョンを読み込んだ場合に通知されます。
メンバ
本構造体のバージョン情報
LDAP-APIのバージョン情報
使用できる最も新しいLDAPプロトコルのバージョン
未使用(本ライブラリでは通知されません)
提供元ベンダ名のアドレス
本ライブラリのバージョン
名前
LDAPMod
形式
typedef struct ldapmod {
        int  mod_op;
        char  *mod_type;
        union {
                char  **modv_strvals;
                struct  berval  **modv_bvals;
                } mod_vals;
#define mod_values  mod_vals.modv_strvals
#define mod_bvalues  mod_vals.modv_bvals
} LDAPMod;使用方法
この構造体は、エントリの追加/変更において、属性名と属性値の集合を指定する場合に使用します。
メンバ
操作、および属性値の種類
属性名のアドレス
属性値のポインタ配列のアドレス(共用体)
属性値が文字列データの場合に使用
属性値がバイナリデータの場合に使用
名前
LDAPVersion
形式
typedef struct _LDAPVersion {
        int  sdk_version;
        int  protocol_version;
        int  SSL_version;
        int  security_level;
        char  *sdk_vendor;
        int  reserved[3];
} LDAPVersion;使用方法
この構造体は、ldap_version()でライブラリのバージョン情報を読み込んだ場合に通知されます。
メンバ
ライブラリのバージョン
使用できる最も新しいLDAPプロトコルのバージョン
使用できる最も新しいSSLプロトコルのバージョン。
未使用域(将来使用するために保持している領域です)
提供元ベンダ名のアドレス
未使用域(将来使用するために保持している領域です)
名前
SSLENV
形式
typedef struct sslenv {
          int  ssl_version;
          int  ssl_verify;
          char  *crypt;
          char  *slot_path;
          char  *tkn_lbl;
          char  *tkn_pwd;
          unsigned char  *cert_path;
          char  *crl_path;
          unsigned char  *user_cert;
          int  ssl_err;
          int  ssl_err_detail;
          int  ssl_timer;
          unsigned char  ssl_err_funcinfo;
          char  *reserve[15];
} SSLENV;使用方法
この構造体は、SSLを使用する場合に、SSLの動作環境を指定するために使用します。
メンバ
使用するSSLプロトコルのバージョン
証明書の検証方法
使用する暗号化アルゴリズムの種類
スロット情報ディレクトリのアドレス
トークンラベルのアドレス
ユーザPINのアドレス
運用管理ディレクトリのアドレス
CRL管理ディレクトリのアドレス(本バージョンでは使用しません)
ユーザ証明書ニックネームのアドレス
SSLエラーコード
SSLエラー詳細コード
SSLのタイマー値
SSLライブラリ関数コード
未使用域(将来使用するために保持している領域です)
名前
timeval
形式
struct timeval {
        long  tv_sec;
        long  tv_usec;
};使用方法
この構造体は、タイマー値を指定する場合に使用します。
メンバ
指定する時間の1秒以上の部分(秒単位)
指定する時間の1秒未満の部分(マイクロ秒単位)