]> git.sur5r.net Git - openldap/blob - libraries/libldap/apitest.c
Split out ldapoptions from struct ldap to facilate global options.
[openldap] / libraries / libldap / apitest.c
1 /*
2  * OpenLDAP API Test
3  *      Written by: Kurt Zeilenga
4  *
5  * This program is designed to test libldap API for conformance
6  * to draft-api-ldapext-ldap-c-api-01.txt.
7  */
8 #include "portable.h"
9
10 #include <stdio.h>
11 #include <ac/time.h>
12
13 #include "lber.h"
14 #include "ldap.h"
15
16 void
17 main(int argc, char **argv)
18 {
19         LDAPAPIInfo api;
20         int ival;
21         int sval;
22
23 #ifdef LDAP_API_INFO_VERSION
24         api.ldapai_info_version = LDAP_API_INFO_VERSION;
25 #else
26         api.ldapai_info_version = 1;
27 #endif
28
29         printf("Compile time API Information\n");
30         printf("  API Info version:  %d\n", api.ldapai_info_version);
31         printf("  API version:       %d\n", LDAP_API_VERSION);
32 #ifdef LDAP_VERSION
33         printf("  Protocol Version:  %d\n", LDAP_VERSION);
34 #else
35         printf("  Protocol Version:  unknown\n");
36 #endif
37 #ifdef LDAP_VERSION_MIN
38         printf("  Protocol Min:      %d\n", LDAP_VERSION_MIN);
39 #else
40         printf("  Protocol Min:      unknown\n");
41 #endif
42 #ifdef LDAP_VERSION_MAX
43         printf("  Protocol Max:      %d\n", LDAP_VERSION_MAX);
44 #else
45         printf("  Protocol Max:      unknown\n");
46 #endif
47 #ifdef LDAP_VENDOR_NAME
48         printf("  Vendor Name:       %s\n", LDAP_VENDOR_NAME);
49 #else
50         printf("  Vendor Name:       unknown\n");
51 #endif
52 #ifdef LDAP_VENDOR_VERSION
53         printf("  Vendor Version:    %d\n", LDAP_VENDOR_VERSION);
54 #else
55         printf("  Vendor Version:    unknown\n");
56 #endif
57
58         if(ldap_get_option(NULL, LDAP_OPT_API_INFO, &api) != LDAP_SUCCESS) {
59                 fprintf(stderr, "%s: ldap_get_option(api) failed", argv[0]);
60                 exit(-1);
61         }
62
63         printf("\nExecution time API Information\n");
64         printf("  API Info version:  %d\n", api.ldapai_info_version);
65
66         if (api.ldapai_info_version != LDAP_API_INFO_VERSION) {
67                 printf(" API INFO version mismatch!");
68                 exit(-1);
69         }
70
71         printf("  API Version:       %d\n", api.ldapai_api_version);
72         printf("  Protocol Max:      %d\n", api.ldapai_protocol_version);
73
74         if(api.ldapai_extensions == NULL) {
75                 printf("  Extensions:        none\n");
76
77         } else {
78                 int i;
79                 for(i=0; api.ldapai_extensions[i] != NULL; i++) {
80                         printf("                     %s\n",
81                                 api.ldapai_extensions[i]);
82                 }
83                 printf("  #Extensions:       %d\n", i);
84         }
85
86         printf("  Vendor Name:       %s\n", api.ldapai_vendor_name);
87         printf("  Vendor Version:    %d\n", api.ldapai_vendor_version);
88
89         printf("\nExecution time Default Options\n");
90
91         if(ldap_get_option(NULL, LDAP_OPT_DEREF, &ival) != LDAP_SUCCESS) {
92                 fprintf(stderr, "%s: ldap_get_option(api) failed", argv[0]);
93                 exit(-1);
94         }
95         printf("  DEREF:             %d\n", ival);
96
97         if(ldap_get_option(NULL, LDAP_OPT_SIZELIMIT, &ival) != LDAP_SUCCESS) {
98                 fprintf(stderr, "%s: ldap_get_option(sizelimit) failed", argv[0]);
99                 exit(-1);
100         }
101         printf("  SIZELIMIT:         %d\n", ival);
102
103         if(ldap_get_option(NULL, LDAP_OPT_TIMELIMIT, &ival) != LDAP_SUCCESS) {
104                 fprintf(stderr, "%s: ldap_get_option(timelimit) failed", argv[0]);
105                 exit(-1);
106         }
107         printf("  TIMELIMIT:         %d\n", ival);
108
109         exit(0);
110 }