3 * Written by: Kurt Zeilenga
5 * This program is designed to test API features of libldap.
7 * The API specification can be found in:
9 * draft-api-ldapext-ldap-c-api-01.txt
11 * and discussions on ietf-ldapext mailing list.
23 main(int argc, char **argv)
29 #ifdef LDAP_API_INFO_VERSION
30 api.ldapai_info_version = LDAP_API_INFO_VERSION;
32 api.ldapai_info_version = 1;
35 printf("Compile time API Information\n");
36 printf(" API Info version: %d\n", api.ldapai_info_version);
37 printf(" API version: %d\n", LDAP_API_VERSION);
39 printf(" Protocol Version: %d\n", LDAP_VERSION);
41 printf(" Protocol Version: unknown\n");
43 #ifdef LDAP_VERSION_MIN
44 printf(" Protocol Min: %d\n", LDAP_VERSION_MIN);
46 printf(" Protocol Min: unknown\n");
48 #ifdef LDAP_VERSION_MAX
49 printf(" Protocol Max: %d\n", LDAP_VERSION_MAX);
51 printf(" Protocol Max: unknown\n");
53 #ifdef LDAP_VENDOR_NAME
54 printf(" Vendor Name: %s\n", LDAP_VENDOR_NAME);
56 printf(" Vendor Name: unknown\n");
58 #ifdef LDAP_VENDOR_VERSION
59 printf(" Vendor Version: %d\n", LDAP_VENDOR_VERSION);
61 printf(" Vendor Version: unknown\n");
64 if(ldap_get_option(NULL, LDAP_OPT_API_INFO, &api) != LDAP_SUCCESS) {
65 fprintf(stderr, "%s: ldap_get_option(api) failed\n", argv[0]);
69 printf("\nExecution time API Information\n");
70 printf(" API Info version: %d\n", api.ldapai_info_version);
72 if (api.ldapai_info_version != LDAP_API_INFO_VERSION) {
73 printf(" API INFO version mismatch!\n");
77 printf(" API Version: %d\n", api.ldapai_api_version);
78 printf(" Protocol Max: %d\n", api.ldapai_protocol_version);
80 if(api.ldapai_extensions == NULL) {
81 printf(" Extensions: none\n");
85 for(i=0; api.ldapai_extensions[i] != NULL; i++) /* empty */;
86 printf(" Extensions: %d\n", i);
87 for(i=0; api.ldapai_extensions[i] != NULL; i++) {
88 #ifndef LDAP_API_FEATURE_INFO
90 api.ldapai_extensions[i]);
92 LDAPAPIFeatureInfo fi;
93 fi.ldapaif_name = api.ldapai_extensions[i];
94 fi.ldapaif_version = 0;
96 ldap_get_option(NULL, LDAP_OPT_API_FEATURE_INFO, &fi);
99 api.ldapai_extensions[i], fi.ldapaif_version);
104 printf(" Vendor Name: %s\n", api.ldapai_vendor_name);
105 printf(" Vendor Version: %d\n", api.ldapai_vendor_version);
107 printf("\nExecution time Default Options\n");
109 if(ldap_get_option(NULL, LDAP_OPT_DEREF, &ival) != LDAP_SUCCESS) {
110 fprintf(stderr, "%s: ldap_get_option(api) failed\n", argv[0]);
113 printf(" DEREF: %d\n", ival);
115 if(ldap_get_option(NULL, LDAP_OPT_SIZELIMIT, &ival) != LDAP_SUCCESS) {
116 fprintf(stderr, "%s: ldap_get_option(sizelimit) failed\n", argv[0]);
119 printf(" SIZELIMIT: %d\n", ival);
121 if(ldap_get_option(NULL, LDAP_OPT_TIMELIMIT, &ival) != LDAP_SUCCESS) {
122 fprintf(stderr, "%s: ldap_get_option(timelimit) failed\n", argv[0]);
125 printf(" TIMELIMIT: %d\n", ival);
127 if(ldap_get_option(NULL, LDAP_OPT_REFERRALS, &ival) != LDAP_SUCCESS) {
128 fprintf(stderr, "%s: ldap_get_option(referrals) failed\n", argv[0]);
131 printf(" REFERRALS: %s\n",
132 ival == (int) LDAP_OPT_ON ? "on" : "off");
134 if(ldap_get_option(NULL, LDAP_OPT_RESTART, &ival) != LDAP_SUCCESS) {
135 fprintf(stderr, "%s: ldap_get_option(restart) failed\n", argv[0]);
138 printf(" RESTART: %s\n",
139 ival == (int) LDAP_OPT_ON ? "on" : "off");
141 if(ldap_get_option(NULL, LDAP_OPT_PROTOCOL_VERSION, &ival) != LDAP_SUCCESS) {
142 fprintf(stderr, "%s: ldap_get_option(protocol version) failed\n", argv[0]);
145 printf(" PROTOCOL VERSION: %d\n", ival);
147 if(ldap_get_option(NULL, LDAP_OPT_HOST_NAME, &sval) != LDAP_SUCCESS) {
148 fprintf(stderr, "%s: ldap_get_option(host name) failed\n", argv[0]);
151 printf(" HOST NAME: %s\n", sval);